Я выгляжу, но, по-видимому, не могу получить синтаксис правильно, когда он соотносится с классами и стилями. У меня есть элементы управления, которые имеют определенное поведение. Некоторое я получаю, чтобы добавить дополнительное поведение. Теперь я хочу, чтобы стиль соответствовал каждой версии. В своем простом примере я проигнорирую эти классы, поскольку я знаю, что стиль специально связан с визуальным и неэффективным воздействием. Некоторые предыдущие вопросы были близки, но я все еще что-то пропустил.WPF-класс и соответствующий визуальный стиль Наследование
public class MyLabel : Label
{}
public class MyLabel2 : MyLabel
{}
Итак, из вышеизложенного я должен иметь 3 стиля в своем ресурсном словаре. Один для общего «Ярлыка», один для случаев, когда у меня есть элемент управления, который получен из «MyLabel», а другой для «MyLabel2». «Local:» указывает на мою библиотеку классов на объявление «Тема» xaml.
<Style x:Key="baseLabel" TargetType="Label">
<Setter Property="FontSize" Value="10" />
</Style>
<Style x:Key="styleMyLabel" TargetType="local:MyLabel" BasedOn="{StaticResource baseLabel}" >
<Setter Property="FontSize" Value="14" />
</Style>
<Style x:Key="styleMyLabel2" TargetType="{x:Type local:MyLabel2}" BasedOn="{StaticResource styleMyLabel}" >
<Setter Property="FontSize" Value="22" />
</Style>
Опять же, для очень упрощенных целей, просто используя простую метку для наследования в следующих целях. В моем окне xaml файл. В окне xaml «src:» указывает на мою библиотеку классов, которая является той же библиотекой, что и «local:», указанной в теме (но я попытался в обоих направлениях ... чтобы оба экземпляра ссылались на xmlns: local in оба, но, похоже, это не повлияло).
<src:MyLabel Content="Does Not Respect Style even though derived from MyLabel class" />
<src:MyLabel Content="This one works " Style="{DynamicResource styleMyLabel}" />
<src:MyLabel2 Content="This one doesnt work"/>
<src:MyLabel2 Content="This one works " Style="{DynamicResource styleMyLabel2}" />
Я думаю, что я не должен четко определить стиль, если его производным от класса, который имеет стиль соответствующего целевого типа. Надеюсь, это что-то глупое просто, но я не могу обмануть мою голову ...