Как я могу стилизовать состояние «отключено» моего пользовательского элемента управления? Я не понимаю, как стилизовать различные части пользовательского пользовательского элемента управления. Например, пользовательский пользовательский элемент управления состоит из нескольких компонентов. Итак, как я могу настроить таргетинг на определенные части элемента управления в моей глобальной таблице стилей? Помня о том, что я хочу, чтобы он восстановил первоначальный цвет, если он снова включен.Стиль Пользовательский пользовательский контроль Отключено состояние
Вот мой собственный код пользовательского управления ...
VNode.xaml
<UserControl x:Class="WpfApplication1.VNode"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
d:DesignHeight="100" d:DesignWidth="200">
<Grid>
<Rectangle x:Name="Backplate" Fill="Green" Width="100" Height="50" RadiusX="3" RadiusY="3"/>
<Rectangle x:Name="Highlight"
Height="60"
Width="110"
Fill="Transparent"
Stroke="White"
StrokeThickness="2"
RadiusX="6" RadiusY="6">
</Rectangle>
<TextBlock x:Name="Label" Text="Label" TextWrapping="Wrap" Width="100" Height="50"/>
</Grid>
</UserControl>
VNode.xaml.cs
using System.Windows.Controls;
using System.Windows.Media;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for VNode.xaml
/// </summary>
public partial class VNode : UserControl
{
public VNode()
{
InitializeComponent();
}
public Brush BackplateColor
{
get { return Backplate.Fill; }
set { Backplate.Fill = value; }
}
public string Text
{
get { return Label.Text; }
set { Label.Text = value; }
}
}
}
таблицы стилей
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1">
<Style x:Key="NodeStyle" TargetType="{x:Type local:VNode}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Backplate" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
Похоже, вы должны переопределить шаблоны каждого элемента управления в VNode, см. [Http: // stack overflow.com/questions/3751990/how-to-change-disabled-background-color-of-textbox-in-wpf](http://stackoverflow.com/questions/3751990/how-to-change-disabled-background -Колор-оф-текстовое поле-в-МОФ) – jHilscher