Техника d:DesignerProperties.DesignStyle
, показанная на этой странице, отлично подходит для применения стиля WPF только для времени разработки к одиночному элементу управления , но, похоже, не работает для Style
в ResourceDictionary
, который будет применяться к всем элементов управления или элементов с соответствующей типизацией в области действия словаря. Ниже приведено простое решение, которое я нашел для развертывания стиля только для дизайнера в ResourceDictionary
.
Рассмотрим, например, Window
, содержащий TreeView
, где мы хотим, чтобы узлы TreeViewItem
отображались как полностью развернутые, но только во время разработки. Сначала поместите желаемый стиль в словарь XAML обычным способом.
<Window.Resources>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True" />
</Style>
</Window.Resources>
Здесь Style
помещается в ResourceDictionary
из Window
, но, конечно, вы могли бы использовать любой другой словарь для подстановки. Затем, в коде C #, удаляет стиль из ResourceDictionary
, когда режим разработки не обнаружен . Сделайте это в OnInitialized
переопределении:
protected override void OnInitialized(EventArgs e)
{
if (DesignerProperties.GetIsInDesignMode(this) == false)
Resources.Remove(typeof(TreeViewItem));
base.OnInitialized(e);
}
Режим разработки: Режим выполнения: