El código WPF hace referencia dinámicamente a los recursos de estilo.

En trabajos recientes, a menudo es necesario inicializar la interfaz en función de los datos inicializados, y el código debe hacer referencia de forma dinámica a los recursos de Style. Hay muy pocos materiales en línea. No he desarrollado C# antes y es demasiado difícil de encontrar, por lo que registraré los siguientes dos métodos, lo cual es conveniente para mí y para mis amigos.

1. Si la declaración del recurso está en el archivo App.xaml 

En primer lugar, explique que App.xaml viene con el programa, y ​​los amigos que no lo conocen pueden buscarlo, los recursos declarados en App.xaml se pueden usar como referencias globales, y el método de declaración es el siguiente

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Themes/Styles/ScriptTreeViewStyle.xaml"/>
                <ResourceDictionary Source="/多个资源文件在这一一声明"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

Después de la declaración, si necesita consultar el recurso en el código, el método es el siguiente

treeViewItem.SetValue(TreeViewItem.ItemContainerStyleProperty, Application.Current.Resources["ScriptTreeItemStyle"]);

2. Si el archivo de recursos se declara en el archivo de diseño

En general, la mayoría de nuestros recursos se declaran en el archivo de diseño, y los recursos declarados en el archivo de diseño solo se pueden usar en el archivo de diseño y la clase, pero los recursos declarados de esta manera se liberarán después de su uso, lo que reducirá el uso de memoria. Los siguientes son los recursos declarados en UserControl, y 3 recursos están declarados en el código

    <UserControl x:Class="AUTOTest.Widgets.ImgCpmpareView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:AUTOTest.Widgets"
             xmlns:img="clr-namespace:AUTOTest.Widgets.Common.ImageDealer"
             mc:Ignorable="d" 
             d:DesignWidth="498">
        <UserControl.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="/Themes/Styles/ToggleButtonStyle.xaml"/>
                    <ResourceDictionary Source="/Themes/Styles/ButtonStyle.xaml"/>
                    <ResourceDictionary Source="/Themes/Styles/MouseOnItemStyle.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </UserControl.Resources>
    </UserControl>

Es casi lo mismo que los recursos globales cuando se llama, pero es muy conveniente. El código es el siguiente

label.SetValue(Label.StyleProperty, Resources["MouseOnStyle"]);

Supongo que te gusta

Origin blog.csdn.net/baoolong/article/details/126196621
Recomendado
Clasificación