Применить стиль из поля базы данных в WPF - PullRequest
3 голосов
/ 12 июля 2010

Моя проблема в том, что у меня разные стили, которые хранятся в таблице базы данных.Я получу эти стили и сохраню их в некоторой строковой переменной. Теперь я хочу применить эти стили в своих элементах управления wpf.так как я могу это сделать?

ex:

Мой код: ..

Window1.xaml
===========================

<Window x:Class="DynamicBindResourceDictionary.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Button Margin="103,64,68,86" Name="button1" Content="Click Here!" Style="{DynamicResource baseStyle}"></Button>
    </Grid>
</Window>

Window1.xaml.cs
================

public partial class Window1 : Window
{ 
    //Store the style here from database
    string style = "<Style x:Key='baseStyle' TargetType='{x:Type Button}'>" +
    "<Setter Property='FontSize' Value='15' />" +
    "<Setter Property='Background' Value='Red' /></Style>";

    public Window1()
    {
        InitializeComponent();
    /* How to do that?  */
    }
}

, если мы не можем использовать строковую переменную, чем альтернативное решение длячто ..

Пожалуйста, помогите мне

Дхармеш

1 Ответ

1 голос
/ 12 июля 2010

Попробуйте это:

    public MainWindow()
    {
        string styleString = "<Style xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" x:Key='baseStyle' TargetType='{x:Type Button}' >" +
                             "<Setter Property='FontSize' Value='15' />" +
                             "<Setter Property='Background' Value='Red' />"+
                             "<Setter Property='Height' Value='18' />" +
                             "</Style>";
        StringReader stringReader = new StringReader(styleString);
        XmlReader xmlReader = XmlReader.Create(stringReader);
        Style readerLoadStyle = (Style)XamlReader.Load(xmlReader);            
        ResourceDictionary rd = new ResourceDictionary();
        rd.Add("baseStyle", readerLoadStyle);
        Application.Current.Resources.MergedDictionaries.Add(rd);
        InitializeComponent();            
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...