Style TargetType свойство вопрос - PullRequest
       12

Style TargetType свойство вопрос

3 голосов
/ 30 августа 2011

В чем разница между следующими спецификациями TargetType?

1.

<Style TargetType="{x:Type Button}" ...

2.

<Style TargetType="Button" ...

Кажется, оба работают нормально.*

Ответы [ 2 ]

3 голосов
/ 30 августа 2011

В первом примере расширение разметки Type создает экземпляр Type, заданный данной строкой, т.е. Button.

Во втором примере преобразователь типов, связанный со свойством TargetType, преобразует строку "Button" в требуемое Type.

Оба дают одинаковый результат . Примечательно, что в Silverlight расширение разметки Type не существует, поэтому (2) возможно только.

1 голос
/ 19 апреля 2012

Извините за то, что тыкаю такую ​​старую ветку, но я чувствую, что это того стоит.Недавно я столкнулся с ситуацией, которая показывает, что x:Type отличается от TypeName-as-String.Из моего опыта -

x: Тип учитывает строгое имя или версию сборки, но не TypeName-as-String .

Я объяснил свой сценарий и другие подробности в своем блоге здесь -

http://weblogs.asp.net/akjoshi/archive/2012/02/03/importance-of-specifying-ancestortype-with-x-type-in-relativesourcebinding.aspx

Помимо этого, существует также разница в том, как WPF выводит тип.Для x: тип используется TypeExtension, тогда как для используется TypeName-as-String FrameworkElementFactory.

Согласно MSDN -

Свойства типа, поддерживающие Typename-as-String

WPF поддерживает методы, позволяющие указывать значение некоторых свойств типа Type без необходимости использования расширения разметки x: Type.Вместо этого вы можете указать значение в виде строки с именем типа.Примерами этого являются ControlTemplate.TargetType и Style.TargetType.Поддержка этого поведения не предоставляется ни преобразователями типов, ни расширениями разметки.Вместо этого это поведение отсрочки, реализованное через FrameworkElementFactory.

http://msdn.microsoft.com/en-us/library/ms753322.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...