此问题在此处已有答案:
What does x:Key="{x:Type TextBox}" do?(4个答案)
17天前关闭。
我知道像样式或ControlTemplates这样的资源在Wpf中使用x:Key,如下所示。
<Style x:Key="SimpleScrollViewer" TargetType="{x:Type ScrollViewer}">
...
</Style>
字符串
但我只是注意到x:Key * 和 * x:Type如下所示。
<Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="Width" Value="Auto"/>
<Setter Property="Height" Value="18" />
<Setter Property="Template"
Value="{StaticResource CustomHorizontalScrollBar}" />
</Trigger>
</Style.Triggers>
</Style>
型
只是为了强调有x:类型 * 内**的括号{}。
<Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
...
</Style>
型
有人能解释或指出我一些文档如何理解这一点吗?
1条答案
按热度按时间toe950271#
x:Key
不一定是字符串。它也可以是,例如,类型。在本例中,它是一个类型。注意
<Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
和<Style TargetType="{x:Type ScrollBar}">
是等价的:If aTargetType
is specified, but nox:Key
, theTargetType
is used as the default value for thex:Key
.将
x:Key
设置为一个类型(显式地或通过省略它)也会使其成为该类型的默认样式。