如何在通用Windows应用程序中绑定模板内的空值?
在你回答之前,看看这篇文章 。
首先得到答案可能会解决以下问题。
这是一个刚刚开始使用Windows 10(Universal Apps)的问题。 在Windows 8.1和其他所有XAML技术中,这种技术完美无瑕。 这是空白通用应用程序项目中的设置:
1.具有附加属性的静态类
创建一个包含Brush
类型的附加属性的类。 把它放在项目的任何地方。
public static class MySettings { public static Brush GetAccentBrush(DependencyObject d) { return (Brush)d.GetValue(AccentBrushProperty); } public static void SetAccentBrush(DependencyObject d, Brush value) { d.SetValue(AccentBrushProperty, value); } public static readonly DependencyProperty AccentBrushProperty = DependencyProperty.RegisterAttached( "AccentBrush", typeof(Brush), typeof(MySettings), null ); }
2.使用附加属性将控件添加到MainPage.xaml
在主页面中,添加一个ContentControl
其中包含一个自定义模板,该模板的背景颜色设置为重点画笔。 重点画笔以风格设置。
如果您现在运行该应用程序,它将显示绿色背景。 一切正常。 但是,如果将值设置为{x:Null}
,则会引发exception。
有人想拍这个吗?
为了记录,这个问题似乎已得到修复。 我的项目引用了通用Windows版本10.0.10240.0。 如原始海报所描述的那样将画笔设置为{x:Null}按预期工作。
您可以添加假附加属性:
public static Brush GetNullAccentBrush(DependencyObject d) { return (Brush)d.GetValue(NullAccentBrushProperty); } public static void SetNullAccentBrush(DependencyObject d, Brush value) { d.SetValue(NullAccentBrushProperty, value); } public static readonly DependencyProperty NullAccentBrushProperty = DependencyProperty.RegisterAttached( "NullAccentBrush", typeof(SolidColorBrush), typeof(MySettings), null );
绑定你的属性setter:
网格背景为空(即使NullAccentBrush上没有真正的绑定…)。
我发现这段代码在资源文件中有效
然后在你的风格中使用该链接到BgNull
上述就是C#学习教程:如何在通用Windows应用程序中绑定模板内的空值?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/989279.html