Пользовательские элементы управления Themable в WPF

Я предпочитаю использовать docker-compose для более сложных запусков, чтобы сохранить все параметры в файле yaml. Тогда все, что вам нужно для запуска контейнера, это docker-compose up. Для большего количества опций внутри приложения вы можете использовать файл .env.

Я думаю, что это самый простой способ запустить контейнеры и не требует каких-либо знаний для следующих пользователей / разработчиков этой среды.

8
задан Drake 23 February 2009 в 11:24
поделиться

2 ответа

В темах WPF просто ряд файлов XAML каждый содержащий ResourceDictionary, который содержит определения Стиля и Шаблона, которые относятся к средствам управления, используемым в приложении. Файл темы мог быть похожим на это:

<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:uc="clr-namespace:MyApp.UserControls">

  <!-- Standard look for MyUserControl -->
  <Style x:Key="Standard" TargetType="{x:Type uc:MyUserControl}">
    <Setter Property="Width" Value="22" />
    <Setter Property="Height" Value="10" />
  </Style>

</ResourceDictionary>

Поддержка тем в приложении WPF должна быть явно включена путем добавления следующего атрибута к блоку:

[assembly: ThemeInfo(
  ResourceDictionary.None,
  ResourceDictionaryLocation.SourceAssembly
 )]

Это даст WPF команду искать встроенный файл ресурсов, названный themes\generic.xaml для определения вида по умолчанию средств управления приложения.

Обратите внимание, что то, когда определенные для темы словари содержатся отдельные файлы, чем блок приложения, стиль и обрабатывают ресурсы по шаблону, должно использовать составной ключ, который говорит WPF, какой блок содержит управление, к которому относится стиль/шаблон. Таким образом, предыдущий пример должен быть изменен к:

<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:uc="clr-namespace:MyApp.UserControls;assembly=MyApp">

  <!-- Standard look for MyUserControl in the MyApp assembly -->
  <Style x:Key="{ComponentResourceKey {x:Type uc:MyUserControl}, Standard}">
    <Setter Property="Width" Value="22" />
    <Setter Property="Height" Value="10" />
  </Style>

</ResourceDictionary>
7
ответ дан 5 December 2019 в 20:20
поделиться

Взгляд на эту статью: http://msdn.microsoft.com/en-us/magazine/cc135986.aspx

Это говорит о том, как записать управление, которое можно изменить с ControlTemplate, как созданный в средствах управления.

1
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: