У меня есть несколько пользовательских элементов управления, которые имеют некоторые общие свойства, и я хотел бы применить общий стиль, который запускается с этими свойствами.Я поместил эти общие свойства в интерфейс (IMyControl) и заставил свои элементы управления реализовать его, но кажется, что стиль не может иметь интерфейс как TargetType ...
Мои пользовательские свойства имеют два логических значения: bMandatory иbIncomplete.Общая часть стиля:
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="Background" Value="{StaticResource FocusedBG}" />
</Trigger>
<Trigger Property="bMandatory" Value="True">
<Setter Property="Background" Value="{StaticResource MandatoryBG}" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="bMandatory" Value="True" />
<Condition Property="bIncomplete" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="{StaticResource IncompleteBG}" />
</MultiTrigger>
</Style.Triggers>
Я также вставил в интерфейс IsKeyboardFocusWithin bool и кисть Background , а затем попробовал:
<Style x:Key="ControlRellenableEstilo">
<Style.Triggers>
<Trigger Property="local:IMyControl.IsKeyboardFocusWithin" Value="True">
<Setter Property="local:IMyControl.Background" Value="{StaticResource FocusedBG}" />
</Trigger>
<Trigger Property="local:IMyControl.bMandatory" Value="True">
<Setter Property="local:IMyControl.Background" Value="{StaticResource MandatoryBG}" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="local:IMyControl.bMandatory" Value="True" />
<Condition Property="local:IMyControl.bIncomplete" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="{StaticResource IncompleteBG}" />
</MultiTrigger>
</Style.Triggers>
</Style>
Он не жалуется при сборке, но при запуске приложения выдает исключение XamlParseException, которое сообщает
Не удалось присвоить свойству 'System.Windows.Setter.Value'
указывает на строку: <Setter Property="local:IMyControl.Background" Value="{StaticResource FocusedBG}" />
Имеется внутреннее исключение со следующим сообщением:
Значение не может быть нулевым.Имя параметра: свойство '
Value = "{StaticResource FocusedBG}" работает в остальных моих стилях ... Есть идеи, как я могу решить эту проблему?