2015-10-22 4 views
0

В моей главной панели управления я определенИспользование стиля в нескольких UserControls

<Control.Resources> 
     <Style x:Key="TextInput" TargetType="{x:Type TextBox}"> 
      <Style.Triggers> 
       <Trigger Property="Text" Value="{x:Static sys:String.Empty}"> 
        <Setter Property="Background" Value="PaleTurquoise" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Control.Resources> 

Как я могу использовать этот стиль для Textboxes в других пользовательских элементов управления, которые размещены внутри моего главного управления?

Мне не нужно применять стиль ко всем текстовым полям, но мне нужен стиль, который можно использовать повторно в любом элементе управления, который я хочу. Возможно ли это без специального контроля?

ответ

1

Вы должны добавить словарь ресурсов в проект.

<ResourceDictionary 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Style x:Key="TextInput" TargetType="{x:Type TextBox}"> 
     <Style.Triggers> 
      <Trigger Property="Text" Value="{x:Static sys:String.Empty}"> 
       <Setter Property="Background" Value="PaleTurquoise" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

Затем добавьте ссылку на этот словарь в приложение ресурсов:

<Application 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     x:Class="YOur class" 
     StartupUri="StartupWindow.xaml"> 
<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Styles\TextInputStyle.xaml"/> 
     </ResourceDictionary.MergedDictionaries>   
    </ResourceDictionary> 
</Application.Resources> 

Таким образом, вы можете использовать свой стиль в любой части вашего проекта

1

Переместить свой стиль до окна ресурсов

<Window.Resources> 
    <Style x:Key="TextInput" TargetType="{x:Type TextBox}"> 
     <Style.Triggers> 
      <Trigger Property="Text" Value="{x:Static sys:String.Empty}"> 
       <Setter Property="Background" Value="PaleTurquoise" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Window.Resources> 

Тогда относятся к стилю, как это:

<TextBox Style="{StaticResource TextInput}" /> 
Смежные вопросы