什么是x:key和x:Type in wpf [duplicate]

qco9c6ql  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(116)

此问题在此处已有答案

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>


有人能解释或指出我一些文档如何理解这一点吗?

toe95027

toe950271#

x:Key不一定是字符串。它也可以是,例如,类型。在本例中,它是一个类型。
注意<Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}"><Style TargetType="{x:Type ScrollBar}">是等价的:If a TargetType is specified, but no x:Key , the TargetType is used as the default value for the x:Key .
x:Key设置为一个类型(显式地或通过省略它)也会使其成为该类型的默认样式。

相关问题