WPF:由于只读状态,无法通过代码隐藏更改SolidColorBrush样式
所以在窗口内。参考资料我有一个SolidColorBrush: 在单独的文件GridViewColumnHeader.xaml中,我有以下风格: 但出于某种原因,我得到了这个无效操作的例外: 其他信息:无法设置对象“ffdcdc”的属性 因为它处于只读状态WPF:由于只读状态,无法通过代码隐藏更改SolidColorBrush样式,wpf,styles,Wpf,Styles,所以在窗口内。参考资料我有一个SolidColorBrush: 在单独的文件GridViewColumnHeader.xaml中,我有以下风格: 但出于某种原因,我得到了这个无效操作的例外: 其他信息:无法设置对象“ffdcdc”的属性 因为它处于只读状态 您可以定义另一个笔刷并将其指定给样式的前景,而不是更改资源笔刷 然而,还有另一种方法可以实现你的目标。 首先,您还应该将使用的样式声明为DynamicSource 例如: <ListView VerticalAlignment="Bo
您可以定义另一个笔刷并将其指定给样式的前景,而不是更改资源笔刷 然而,还有另一种方法可以实现你的目标。 首先,您还应该将使用的样式声明为DynamicSource 例如:
<ListView VerticalAlignment="Bottom" Height="63" IsSynchronizedWithCurrentItem="True">
<ListView.View>
<GridView x:Name="test" ColumnHeaderContainerStyle="{DynamicResource ListViewHeaderDefaultStyle}" >
<GridViewColumn Header="header1"/>
</GridView>
</ListView.View>
</ListView>
我尝试Application.Current.Resources[YourResource]=YourNewValue;这一点都不起作用,另一个问题是我的样式使用的是DynamicSource GridViewColumnHeaderForegroundColor,所以如果我定义了另一个样式,我如何设置这个新笔刷?很抱歉,我读过头了,您在Window.Resources中定义了样式。现在应该可以了。
SolidColorBrush solidColorBrush = (SolidColorBrush)this.TryFindResource("GridViewColumnHeaderForegroundColor");
if (solidColorBrush != null)
solidColorBrush.Color = Colors.Black;
<ListView VerticalAlignment="Bottom" Height="63" IsSynchronizedWithCurrentItem="True">
<ListView.View>
<GridView x:Name="test" ColumnHeaderContainerStyle="{DynamicResource ListViewHeaderDefaultStyle}" >
<GridViewColumn Header="header1"/>
</GridView>
</ListView.View>
</ListView>
this.Resources["GridViewColumnHeaderForegroundColor"] = Brushes.Black;