Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何将多个XAML样式应用于一个元素?_Wpf_Xaml_Styles - Fatal编程技术网

Wpf 如何将多个XAML样式应用于一个元素?

Wpf 如何将多个XAML样式应用于一个元素?,wpf,xaml,styles,Wpf,Xaml,Styles,我有一个工具包:DataGrid(来自Codeplex) 它开始有许多不同的风格: 一个用于根据ViewModel中的变量打开和关闭它 一个用于视觉造型 一个用于其他触发器等 所有这些都需要采用一种大的风格吗?这是唯一的方法吗?或者我可以拥有多种样式,并根据需要附加它们吗?是否还有其他方法可以这样做,例如,您可以在代码中交换样式 样式: <Style x:Key="CodePlexDataGridSwapper" TargetType="toolkit:DataGrid">

我有一个工具包:DataGrid(来自Codeplex)

它开始有许多不同的风格:

  • 一个用于根据ViewModel中的变量打开和关闭它
  • 一个用于视觉造型
  • 一个用于其他触发器等
所有这些都需要采用一种大的风格吗?这是唯一的方法吗?或者我可以拥有多种样式,并根据需要附加它们吗?是否还有其他方法可以这样做,例如,您可以在代码中交换样式

样式:

<Style x:Key="CodePlexDataGridSwapper" TargetType="toolkit:DataGrid">
    <Style.Triggers>
        <DataTrigger Binding="{Binding WhichGrid}" Value="Infragistics">
            <Setter Property="toolkit:DataGrid.Visibility" Value="Collapsed"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

<Style x:Key="ToolkitDataGridLayout" TargetType="toolkit:DataGrid">
    <Setter Property="Background" Value="Yellow"/>
</Style>

伪代码:

<Style x:Key="CodePlexDataGridSwapper" TargetType="toolkit:DataGrid">
    <Style.Triggers>
        <DataTrigger Binding="{Binding WhichGrid}" Value="Infragistics">
            <Setter Property="toolkit:DataGrid.Visibility" Value="Collapsed"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

<Style x:Key="ToolkitDataGridLayout" TargetType="toolkit:DataGrid">
    <Setter Property="Background" Value="Yellow"/>
</Style>

您可能需要查看样式类的名称。基本上,它允许您从一种样式继承另一种样式。“child”样式将拥有父样式的所有setter和触发器(除非它的setter覆盖父样式的setter),而且它显然将拥有自己的setter和触发器


也许这些信息会对您有所帮助。

+1因为它在某种程度上有所帮助,但在应用/合并两个以上的独立样式集时仍然没有帮助。不幸的是,除了基于半继承的简单方法外,很可能无法应用“许多”方法。答案可能是: