wpf 动态边框样式不改变问题分析

当wpf里设置边框的时候,如果是dynamicResource的话,有时候会不显示。

1.window里定义颜色,这时候不显示

 <Window.Resources>
        <Color x:Key="red"
               R="255"
               G="0"
               B="0" A="255" />
        <Color x:Key="blue"
               R="0"
               G="0"
               B="255" A="255" />
    </Window.Resources>
    <Grid>
        <Border BorderThickness="20">
            <Border.Background>
                <SolidColorBrush Color="{DynamicResource red}" />
            </Border.Background>
            <Border.BorderBrush>
                <SolidColorBrush Color="{DynamicResource blue}" />
            </Border.BorderBrush>
        </Border>
       
    </Grid>

设计器里看到的结果如下:

 

 

但是运行起来,效果如下:

 

 让人很蛋疼,可能这就是动态样式的局限吧。

2.app。xaml里设置

  <Application.Resources>
        <Color x:Key="red"
               R="255"
               G="0"
               B="0"
               A="255" />
        <Color x:Key="blue"
               R="0"
               G="0"
               B="255"
               A="255" /> 
    </Application.Resources>

设计器里如下:

 

 运行后如下:

 

 

结论:

使用dynamicResource最好在app里定义

posted @ 2020-04-19 19:26  灰主流  阅读(583)  评论(2编辑  收藏  举报