WPF Theming: не применяется к TextBox, почему? - PullRequest
0 голосов
/ 11 мая 2010

Должен сказать, что я новичок в WPF. Я создаю свое первое реальное приложение и сталкиваюсь с некоторыми проблемами, в настоящее время с темами. Это причина моего поста.

Чтобы использовать тему, такую ​​как ExpressionDark.xaml, я подумал, что достаточно включить ее на уровне приложения. Поэтому в моем App.xaml я добавил:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Skins/ExpressionDark.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <myLib:Locator x:Key="Locator" />
    </ResourceDictionary>
</Application.Resources>

Вот первый вопрос: я не уверен, что поступаю правильно. Правильно ли включать ExpressionDark.xaml в мое приложение, в папку «скины» и ссылаться на него таким образом? где-то еще я нашел что-то вроде «System.Windows.Theming.ExpressionDark» и т. д. Это будет правильный подход?

В любом случае, применив тему с помощью описанного выше метода, я вижу, что почти все мои элементы управления оформлены должным образом; Я говорю «почти все», потому что некоторые из них, такие как DataGrids или TextBoxes, не являются. Я проверил внутри ExpressionDark.xaml и вижу, что стили также определены для этих компонентов. Так почему у меня такое странное поведение?

Надеюсь, я все объяснил достаточно четко. Дайте мне знать, если это не так.

Заранее благодарим за любую помощь, которую вы сможете оказать.

Приветствия

G.

1 Ответ

0 голосов
/ 11 мая 2010

Хорошо, я думаю, что узнал, что происходит.

В App.xaml я установил словарь стилей, который я хотел бы использовать в своем приложении. В моем MainWindow.xaml, в «локальных» ресурсах, вместо этого был другой словарь, который явно переопределял тот, что унаследован от App.xaml.

Я переместил локальный словарь (тот, что в окне) вместе с MergedDictionaries приложения, и все мои элементы управления оформлены правильно.

Я не понимаю, хотя причина этого поведения. Два словаря не должны были конфликтовать друг с другом, я предполагал, что в App можно использовать общий и более специализированный словарь в Window.

Итак, вы, ребята, имеете представление о том, что я на самом деле делал неправильно?

Еще раз спасибо за вашу помощь, Ура, Джанлука.

...