Как заставить пользовательский элемент управления наследовать его стиль от своего родителя? - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть пользовательский комбинированный список (MyComboBox), определенный в моем коде (путем наследования класса от ComboBox. Файл XAML не связан, это лишь добавление поведения.

Работает как задумано, однако стиль, который применяется к стандарту ComboBox, не применяется к MyComboBox.

Как сделать так, чтобы мой пользовательский комбинированный список наследовал стиль по умолчанию от ComboBox? Я пробовал с

DefaultStyleKey = typeof(ComboBox);

в конструкторе, но это ничего не изменило.

Заранее спасибо!

1 Ответ

2 голосов
/ 09 февраля 2011

Я получил ответ в этой теме: http://forums.silverlight.net/forums/p/218761/522162.aspx#522162

Что в основном для изменения конструктора следующим образом:

public MyComboBox()
{
    try
    {
        foreach (ResourceDictionary res in App.Current.Resources.MergedDictionaries)
        {
            if (res[typeof(ComboBox)] is Style)
            {
                this.Style = (Style)res[typeof(ComboBox)];
                return;
            }
        }
    }
    catch { }
}
...