WPF中是不是只能通过改代码来修改Style?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中是不是只能通过改代码来修改Style?相关的知识,希望对你有一定的参考价值。

参考技术A 当然不是 可以在EXPRESSION BLEND中以所见即所得的方式进行修改 参考技术B 不是很明白楼主提问的意思。Style本身就是由XAML构成的。如果你的意思是运行的时候动态去换样式,那么是必须通过后台代码去实现的。追问

如果我想修改模板、Style、控件的皮肤样式什么的,是否一定需要修改代码吗?动态切换样式是指控件的各种交互状态吗?

追答

控件的交互状态也是在控件的style里去改的。更确切的说是修改控件Template各种状态的Triggers。一般查看并修改各种控件状态可以通过blend打开控件模板来修改。

本回答被提问者采纳

WPF,通过修改dataGrid的cell的style,改变选中行失去焦点时的颜色 4.0可用

        <Style  TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
                <Trigger  Property="IsSelected" Value="true">
                    <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
                    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}" />
                    <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
                </Trigger>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True" />
                        <Condition Binding="{Binding IsKeyboardFocusWithin, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}}" Value="False" />
                    </MultiDataTrigger.Conditions>
                    <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
                    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}" />
                    <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>

 

以上是关于WPF中是不是只能通过改代码来修改Style?的主要内容,如果未能解决你的问题,请参考以下文章

VS2015C#WPF中label控件内的字体颜色怎样改变

WPF编程宝典之样式

WPF,通过修改dataGrid的cell的style,改变选中行失去焦点时的颜色 4.0可用

wpf metro风格,怎么自定义gridview的scrollbar,就是想美化一下

wpf写的前端改成用js写可以吗?

WPF学习笔记之如何通过后台C#代码添加(增/删/改按钮)实现对SQLServer数据库数据的更改