2010-06-02 3 views
0

Я создал приложение WPF и сумел получить работу проверки благодаря сообщениям в stackoverflow. Единственная проблема, с которой я сталкиваюсь, заключается в том, что она переопределяет тему, которую я использую. пример темы делает текстовые поля похожими на круглый прямоугольник, но после установки привязки он выглядит как текстовые поля по умолчанию. Вот мой код:Проверка достоверности WPF является переопределяющей темой на интерфейсе

<Button.Style> 
      <Style TargetType="{x:Type Button}"> 
       <Setter Property="IsEnabled" Value="false" /> 

       <Style.Triggers> 
       <!-- Require the controls to be valid in order to press OK --> 
       <MultiDataTrigger> 
         <MultiDataTrigger.Conditions> 
          <Condition Binding="{Binding ElementName=txtEmail, Path=(Validation.HasError)}" Value="false" /> 

         </MultiDataTrigger.Conditions> 
         <Setter Property="IsEnabled" Value="true" /> 
        </MultiDataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Button.Style> 

код за это:

//Form loaded event code 
txtEmail.GetBindingExpression(TextBox.TextProperty).UpdateSource(); 

Я попытался посмотреть в файл темы, но я быстро lost.i думал, что я мог бы использовать этот файл как веб-CSS file.Now, я отключил привязку данных из-за этого. Есть ли для этого работа? спасибо за чтение

ответ

2

Не уверен, что это проблема с корнем, но попробуйте добавить BasedOn="{StaticResource {x:Type Button}}" в элемент стиля.

Button.Style> 
      <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}"> 
... 
+0

Это правильно. Элемент может применять только один стиль за один раз. Чтобы объединить стили, самый простой подход - «наследовать» базовый стиль (ваша тема) из нового стиля, который применяется к элементу. – hemp

+0

спасибо человеку. это действительно спасает мои проблемы. –