Как я могу основать стиль WPF на стиле из словаря скомпилированных ресурсов?

Я скачал бесплатные стили Reuxables и добавил их в качестве словаря ресурсов в свой App.xaml. Я также добавил свой собственный словарь ресурсов, который включает в себя шаблон валидатора.

Проблема заключается в том, что когда я добавляю целевой тип стиля в свой шаблон валидатора для целевого типа объекта, этот тип объекта теряет стиль из библиотеки Reuxables.

Это мой App.xaml:

<Application x:Class="App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/ReuxablesLegacy;component/edge.xaml" />
                <ResourceDictionary Source="Themes/Validator.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

И это мой словарь ресурсов валидатора:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:conv="clr-namespace:WPFLibrary.Converters;assembly=WPFLibrary">
    <conv:ErrorListConverter x:Key="errorListConverter" />
    <Style x:Key="myValidatorTemplate" TargetType="Control">
    <!-- If return from converter is 'true' (where converter is handed a dictionary and property name) then set the border and tooltip accordingly -->
    <Style.Triggers>
        <DataTrigger Value="true">
        <DataTrigger.Binding>
            <MultiBinding Converter="{StaticResource errorListConverter}" ConverterParameter="EXISTS" >
            <Binding Path="ErrorList" />
            <Binding RelativeSource="{RelativeSource Self}" Path="Tag" />
            </MultiBinding>
        </DataTrigger.Binding>
        <Setter Property="BorderThickness" Value="1" />
        <Setter Property="BorderBrush" Value="Red" />
        <Setter Property="ToolTip" >
            <Setter.Value>
            <MultiBinding Converter="{StaticResource errorListConverter}" ConverterParameter="VALUE" >
                <Binding Path="ErrorList" />
                <Binding RelativeSource="{RelativeSource Self}" Path="Tag" />
            </MultiBinding>
            </Setter.Value>
        </Setter>
        </DataTrigger>
    </Style.Triggers>
    </Style>
    <!--List the control types that should be able to display validation errors-->
    <Style TargetType="TextBox" BasedOn="{StaticResource myValidatorTemplate}" />
    <Style TargetType="ComboBox" BasedOn="{StaticResource myValidatorTemplate}" />
    <Style TargetType="DatePicker" BasedOn="{StaticResource myValidatorTemplate}" />
    <Style TargetType="DataGrid" BasedOn="{StaticResource myValidatorTemplate}" />
    <Style TargetType="DataGridCell" BasedOn="{StaticResource myValidatorTemplate}" />
    <Style TargetType="GroupBox" BasedOn="{StaticResource myValidatorTemplate}" />
    <Style TargetType="TabItem" BasedOn="{StaticResource myValidatorTemplate}" />
</ResourceDictionary>

Поскольку я применяю валидатор к текстовым полям, выпадающим спискам, средствам выбора даты, сетям данных, групповым полям и таблицам, все они утратили свой стиль Reuxables Edge.

Я ценю любые решения. Спасибо!

0 ответов

Другие вопросы по тегам