WPF 我在xmal设置style 我想改变style this.Style = (Style)FindResource("BaseWindowStyle"); 报错

WPF 我在xmal设置style 我想改变style this.Style = (Style)FindResource("BaseWindowStyle"); 报错,第1张

首先,直接转Style是错误的。 Style有个 TargetType属性,如果不是Target到对应的类型上,这样的转换会报错。

正确的写法应该是:

Style style = new Style(this.GetType())

Setter st= new Setter (Window.AllowsTransparencyProperty, true)

style.Setters.Add(st)//这里 setters可以按照需要增加。

这个应该是因为构造的原因吧,因为窗体先构造了再加载样式,所以没有应用上去,说几点:

1、这个高度和宽度可以直接定义,没必要用Style;

2、你这样用也是可以起作用的,方法是在样式中添加一个key,然后在构造窗体时加载这个样式。其实从这里就可以看出来问题,加载样式时使用静态资源会出错,动态资源就能够通过并起作用。

附代码,希望对你有帮助,有疑问请追问或是Hi

<Window x:Class..........略

Style="{DynamicResource CustomWindow}">

<Grid></Grid>

<Window.Resources>

<Style x:key="CustomWindow" TargetType="Window">

<Setter Property="Width" Value="100"/>

<Setter Property="Height" Value="100"/>

</Style>

</Window.Resources>

</Window>

<Style TargetType="Border" x:Key="Borderstyle"/>

调用:Style="{StaticResource Borderstyle}"


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11905115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存