Привязка цвета фона элемента управления с помощью триггера в WPF / XAML - PullRequest
0 голосов
/ 22 сентября 2011

Ладно, во-первых, у меня нет опыта работы с WPF, поэтому, пожалуйста, примите меня и извинитесь, если моя терминология немного странная ...;)

Следующий фрагмент кода является частью приложения WPF,Я унаследовал.Триггер определяет, будут ли выделены обязательные поля в конкретной форме или нет.Код работает, но, кажется, выделение применяется к элементу управления и граница (??), которая его содержит.

<ItemsControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              xmlns:cal="clr-namespace:Caliburn.PresentationFramework.ApplicationModel;assembly=Caliburn.PresentationFramework"
              x:Class="company.product.Jobs.JobParametersEditor"
              IsTabStop="False">

    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <DockPanel MinHeight="30">
                <TextBlock Text="{Binding DisplayName, Mode=OneWay}"
                           DockPanel.Dock="Left"
                           VerticalAlignment="Center"
                           MinWidth="120"
                           Margin="6,0" />
                <Border>
                    <Border.Style>
                        <Style TargetType="{x:Type Border}">
                            <Setter Property="Background"
                                    Value="{x:Null}" />
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding IsValid}"
                                             Value="False">
                                    <Setter Property="Background"
                                        Value="Red" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Border.Style>

                    <ContentControl cal:View.Model="{Binding ValueEditor}"
                                    ToolTip="{Binding ToolTip}"
                                    IsTabStop="False"
                                    MinHeight="19"
                                    VerticalAlignment="Center"
                                    HorizontalAlignment="Stretch" />
                </Border>
            </DockPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

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

Может ли кто-нибудь просветить меня, как этого добиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...