wpf - 为什么我无法从代码中设置 SolidColorBrush 资源值?

标签 wpf silverlight colors resources

我在 xaml 中定义了一个资源:

<core:WidgetBase xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"  x:Class="....Silverlight.LiquidityConstraintsView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:core="clr-namespace:...Silverlight;assembly=....Silverlight"
    xmlns:local="clr-namespace:....Silverlight"
    mc:Ignorable="d">

    <core:WidgetBase.Resources>
        <SolidColorBrush x:Key="..." />
    </core:WidgetBase.Resources>
...

我正在尝试从代码中设置它:

void _administrationClient_GetByFilterModuleSettingCompleted(object sender, GetByFilterModuleSettingCompletedEventArgs e)
{
        this.Resources["..."] = new SolidColorBrush(Colors.Red);
}

但我收到错误:

该方法或操作未实现。

堆栈跟踪:

   at System.Windows.ResourceDictionary.set_Item(Object key, Object value)
   at ....Silverlight.LiquidityConstraintsView._administrationClient_GetByFilterModuleSettingCompleted(Object sender, GetByFilterModuleSettingCompletedEventArgs e)
   at ....Service.AdministrationServiceClient.OnGetByFilterModuleSettingCompleted(Object state)

当我向服务器发送请求以获取颜色时,就会发生这种情况,然后当它返回时,我尝试将该颜色设置为资源,即使我尝试将其设置为红色,它也会失败。

如果有帮助的话,我设置的方法是从 WCF 调用到服务器的异步回调方法。

最佳答案

如果您查看 Reflector(对于 Silverlight)中 ResourceDictionary 的 setter,您会发现它抛出 NotImplementedException,因此这在 Silverlight 中不起作用。

您可以尝试删除资源并重新添加它,但这只是盲目的尝试。

关于wpf - 为什么我无法从代码中设置 SolidColorBrush 资源值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18615856/

相关文章:

wpf - 如何在运行时在文本之间将图像插入 WPF RichTextBox 中,以便文本在图像周围 float

c# - 将后台工作人员的数量限制为两个,并在添加时完成工作

silverlight - Silverlight 中的反射限制

java - listview 的 onItemClick 和 case 内的循环

javascript - 更改节点列表中的所有元素

c# - 如何从内存中执行 WPF 程序集?

c# - 在 UWP 中使用 DataTriggerBehavior 更改 ContentTemplate

silverlight - 如何绑定(bind) UserControl 属性?

silverlight - 如何将图表图像从 Silverlight 应用程序复制到剪贴板?

python - 无法使用 im.getcolors