问题描述
我编写了一个像素着色器,它基本上改变了其输入的颜色,以便我可以将它应用于我的应用程序中的所有图像、矩形等。 为此,我将其放入我的资源字典中:
<system:Double x:Key="Hue">0</system:Double>
<system:Double x:Key="Saturation">1</system:Double>
<system:Double x:Key="Luminosity">0</system:Double>
<Style targettype="Rectangle" x:Key="RectangleWithShader">
<Setter Property="Effect">
<Setter.Value>
<local:ColorEffect Hue="{DynamicResource Hue}" Saturation="{DynamicResource Saturation}" Luminosity="{DynamicResource Luminosity}"/>
</Setter.Value>
</Setter>
</Style>
我是这样使用的:
<Rectangle Style="{StaticResource RectangleWithShader}" Fill="#00305e"/>
我使用滑块更改色调、饱和度和亮度的值:
<Slider x:Name="Slider_Hue" Maximum="255" Minimum="0" TickFrequency="1" IsSnapToTickEnabled="True" ValueChanged="Slider_Hue_ValueChanged"/>
背后的代码:
private void Slider_Hue_ValueChanged(object sender,RoutedPropertyChangedEventArgs<double> e)
{
Double dHue = Slider_Hue.Value;
Application.Current.Resources["Hue"] = dHue;
}
这对于在我开始使用滑块时已经加载的元素非常有效。但是,例如,当我导航到框架内的新页面时,该页面上有一个使用我的效果的矩形,它没有应用效果。或者至少没有使用我保存在字典中的新值(此时仍然是我将它们更改为的值)。
有人知道我做错了什么吗? (当我使用矩形时将 StaticResource 更改为 DynamicResource 不应该也不行)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)