我在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