aierda 2023-10-26 19:35 采纳率: 72.1%
浏览 12
已结题

wpf中获取静态资源中的一个属性值

问题描述:
直接上图片

img

img


我的目的就是在界面中获取到样式资源文件中的FontSize属性,它是一个Setter,父节点的Key
为SystemButton

//这样的写法,获取不到值,是空的,究竟要怎样写才能获取到值呢,
<TextBox x:Name="txbFontSize" Text="{Binding Path='FontSize', Source={StaticResource SystemButton}}" Width="100"></TextBox>

提出问题:
针对我个问题,请求大家的指点,是不是我的写法不对,还是根本就是获取不到呢?

  • 写回答

14条回答 默认 最新

  • CyMylive. 新星创作者: python技术领域 2023-10-27 01:03
    关注

    结合GPT给出回答如下请题主参考
    可以使用FindResource方法来获取静态资源中的属性值。首先需要在XAML文件中为该资源设置一个Key,例如:

    <Window.Resources>
        <Style TargetType="{x:Type Button}" x:Key="SystemButton">
            <Setter Property="FontSize" Value="16"/>
            <!--其他属性-->
        </Style>
    </Window.Resources>
    

    然后在代码中使用FindResource方法来获取该资源,并转换为Style类型,最后可以通过Setters属性获取到FontSize属性的值,例如:

    Style style = (Style)this.FindResource("SystemButton");
    double fontSize = 0;
    foreach (Setter setter in style.Setters)
    {
        if (setter.Property == FontSizeProperty)
        {
            fontSize = (double)setter.Value;
        }
    }
    

    需要注意的是,FontSize属性的类型是double,因此在获取属性值时需要将setter.Value强制转换为double类型。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(13条)

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 创建了问题 10月26日