我在XAML中为SystemColors定义了资源。如果我将Foregroung属性直接设置到TextBlock,它工作得很好。但是,如果我在样式中分配前景属性,则会出现下面显示的错误。我不确定是什么问题以及如何解决问题。任何想法都非常感谢!无法在Silverlight中的样式中添加系统颜色?
直接在texblock中设置前景的代码。它工作正常
<TextBlock Text="WindowTextColor" Foreground="{Binding WindowTextColor, Source={StaticResource SystemColors}, Converter={StaticResource colorConverter}}" />
当我通过样式设置前景属性时的代码。我的应用程序崩溃:
<UserControl.Resources>
<local:ColorToBrushConverter x:Key="colorConverter" />
<local:SystemColorsWrapper x:Key="SystemColors" />
<Style x:Key="TextBlockStyle1" TargetType="TextBlock">
<Setter Property="Foreground" Value="{Binding WindowColor, Source={StaticResource SystemColors}, Converter={StaticResource colorConverter}}"/>
</Style>
</UserControl.Resources>
<Grid Background="#FFB8B8B8">
<TextBlock Text="WindowColor" Style="{StaticResource TextBlockStyle1}" />
</Grid>
我得到的错误:
发生System.Windows.Markup.XamlParseException 消息=设置属性 '' 引发了异常。 [行:11的位置:41] LineNumber上= 11 LinePosition = 41 堆栈跟踪: 在System.Windows.Application.LoadComponent(对象部件,乌里resourceLocator) 在SilverlightSysColors.MainPage.InitializeComponent() 在SilverlightSysColors.MainPage。 .ctor() InnerException:System.NotSupportedException Message =无法设置只读属性''。 堆栈跟踪: 在MS.Internal.XamlMemberInfo.SetValue(对象目标,对象的值) 在MS.Internal.XamlManagedRuntimeRPInvokes.SetValue(XamlTypeToken法菜单,XamlQualifiedObject & inObj,XamlPropertyToken inProperty,XamlQualifiedObject & inValue) 的InnerException:
是否有任何解决方法? – vladc77 2011-04-28 21:57:34
@ vladc77:看看我的编辑工作 – AnthonyWJones 2011-04-29 19:41:13
这是我能找到的最好的工作。非常感谢你分享他的技术。我高度评价它。 – vladc77 2011-05-01 15:56:14