WPF XAML-向目标行定义的资源字典中添加多种样式

布伦特

感谢您为帮助初学者了解WPF的想法。

我正在尝试在WPF应用程序的XAML文件中使用以下样式模板:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary>
                    <Style TargetType="{x:Type RowDefinition}" x:Key="hideIfNotDischarged">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding DischargedBy28Days, Mode=OneWay}" Value="false">
                                <Setter Property="Height" Value="0" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                    <Style TargetType="{x:Type RowDefinition}" x:Key="hideIfOutcomeKnownAndAlive">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding IsKnownDead, Mode=OneWay}" Value="false">
                                <Setter Property="Height" Value="0" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>

稍后将在像这样的网格中使用:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="30" />
        <RowDefinition Style="{StaticResource hideIfNotDischarged}" />
        ...

但是,如果有多个针对Type RowDefinition的样式元素,并且ResourceDictionary嵌套在MergedDictionary中(即使仅合并了一个子ResourceDictionary),则应用程序将失败

System.Windows.ResourceDictionary.DeferrableContent:项目已添加

也就是说,尽管这两种样式具有不同的键,但资源字典试图添加名称纯粹基于目标类型的字典项(并忽略该键)。

我将如何克服这些问题方面的任何帮助将不胜感激。

sa_ddam213

Xaml解析所以我觉得它的检查从左到右ResourceDictionary或其他MergedDictionaries如果TargetType(如果没有X默认标识:使用密钥)存在,它实现它的前x:Key标识

尝试将设置x:KeyTargetType

这可能是Xaml解析器中的错误,也可能是设计使然,可能值得一看Microsoft Connect

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF重用XAML资源

来自分类Dev

WPF重用XAML资源

来自分类Dev

WPF ToggleButton XAML样式

来自分类Dev

在WPF中重构XAML

来自分类Dev

WPF +符号在XAML中的作用

来自分类Dev

在WPF中启动XAML动画

来自分类Dev

WPF / XAML中的“持久”开关

来自分类Dev

XAML中的WPF合并ContextMenues

来自分类Dev

如何在WPF XAML文件中添加多行注释?

来自分类Dev

如何在 WPF 应用程序中使用 XAML 向带有样式的 DataGridTextColumn 添加多个更改?

来自分类Dev

WPF XAML样式复选框模板

来自分类Dev

自定义菜单WPF(XAML)

来自分类Dev

在WPF中的XAML中设置DataContext

来自分类Dev

XAML中的WPF ListView绑定ItemsSource

来自分类Dev

XAML中的WPF文本块绑定

来自分类Dev

XAML / WPF中的ListBox项布局

来自分类Dev

WPF XAML在ContentControl中显示内容

来自分类Dev

在WPF XAML中扩展复杂的SVG路径

来自分类Dev

在Grid中围绕Grid的WPF Xaml scrollviewer

来自分类Dev

WPF-动态加载的XAML中的动画

来自分类Dev

WPF中XAML的Dyamic Loading Shell模块

来自分类Dev

访问XAML WPF中创建的UI元素

来自分类Dev

WPF ItemSource在XAML中不起作用

来自分类Dev

使按钮在XAML中以WPF格式旋转

来自分类Dev

在WPF TextBlock中显示XAML格式的文本

来自分类Dev

在XAML中创建的WPF控件的设置代码

来自分类Dev

WPF-动态加载的XAML中的动画

来自分类Dev

WPF中的XAML弹出窗口溢出

来自分类Dev

WPF:在 XAML 中多次使用元素