Csharp/C#教程:在WPF XAML中禁用样式?分享


在WPF XAML中禁用样式?

无论如何以程序方式关闭一个样式?

作为一个例子,我有一个链接到所有文本框的样式

 

我想添加一些代码来实际停止使用的样式元素,所以基本上恢复到默认的控件样式。

我需要一种方法来切换我的样式,所以我可以通过C#代码在Windows默认样式和我的自定义样式之间切换。

反正有没有这样做?

谢谢

工作方案

在WPF中切换主题

要将样式设置为默认值,

在XAMl中使用,

  

在C#中使用,

 myTextBox.Style = null; 

如果需要将样式设置为多个资源的null,请参阅CodeNaked的响应。


我觉得,所有其他信息都应该在你的问题中,而不是在评论中。 无论如何,在代码背后我认为这是你想要实现的:

 Style myStyle = (Style)Application.Current.Resources["myStyleName"]; public void SetDefaultStyle() { if(Application.Current.Resources.Contains(typeof(TextBox))) Application.Current.Resources.Remove(typeof(TextBox)); Application.Current.Resources.Add(typeof(TextBox), new Style() { TargetType = typeof(TextBox) }); } public void SetCustomStyle() { if (Application.Current.Resources.Contains(typeof(TextBox))) Application.Current.Resources.Remove(typeof(TextBox)); Application.Current.Resources.Add(typeof(TextBox), myStyle); } 

您可以注入一个空白样式,该样式优先于您的其他样式。 像这样:

           

在上面的示例中,只有Grid的隐式样式才会应用于Grid中的TextBoxes。 您甚至可以通过编程方式将其添加到Grid,例如:

 this.grid.Resources.Add(typeof(TextBox), new Style() { TargetType = typeof(TextBox) }); 

我知道答案已被接受,但我想在以下场景中添加我的解决方案,该解决方案非常棒:

在用户控制root中设置资源:

     

然后工具栏代码可以是以下内容

   Block Template:    

这成功地将主应用程序样式应用于内的控件

在Xaml中,您可以通过显式设置样式来覆盖它。 在代码隐藏中,您还可以显式设置样式。

上述就是C#学习教程:在WPF XAML中禁用样式?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  myTextBox.Style = Application.Resources["SomeOtherStyle"]; 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1022115.html

(0)
上一篇 2022年1月6日
下一篇 2022年1月6日

精彩推荐