2014-02-13 3 views
0

Есть ли способ добиться этого стиля на CheckBox (не TextBlock)CheckBox Стиль/Формат

<CheckBox> 
    <TextBlock Text="All" Margin="-1,1,0,0" /> 
</CheckBox> 

например

<CheckBox Content="All" Style="{StaticResource CloseText}" /> 

На основании ответа от Паши
Перетяжка делает перемещение текста
Проблема здесь Стиль применяется все свойства, но отступы
смотри ниже: CB1 и CB2 не имеют такой же отступы
ContentTemplate делает work
Можно ли включить ContentTemplate в стиль Button?

<Window x:Class="CheckBoxStyle.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
     <Style TargetType="CheckBox"> 
      <Setter Property="FontFamily" Value="Segoe UI" /> 
      <Setter Property="FontStyle" Value="Italic" /> 
      <Setter Property="Margin" Value="50,2,0,0" /> 
      <Setter Property="Padding" Value="-1,0,0,0" /> 
     </Style> 
     <Style TargetType="CheckBox" x:Key="CheckBox01"> 
      <Setter Property="FontFamily" Value="Courier" /> 
      <Setter Property="FontStyle" Value="Oblique" /> 
      <Setter Property="Margin" Value="40,2,0,0" /> 
      <Setter Property="Padding" Value="10,0,0,0" /> 
     </Style> 
     <DataTemplate x:Key="CloseText"> 
      <TextBlock Text="{Binding}" Margin="-3,1,0,0" /> 
     </DataTemplate> 
    </Window.Resources> 
    <Grid> 
     <StackPanel Orientation="Vertical"> 
      <CheckBox Content="CB1" /> 
      <CheckBox Content="CB2" Padding="-1,0,0,0" /> 
      <CheckBox Content="CB3" Style="{StaticResource CheckBox01}" /> 
      <CheckBox Content="CB4" Style="{StaticResource CheckBox01}" ContentTemplate="{StaticResource CloseText}"/> 
     </StackPanel>  
    </Grid> 
</Window> 

ответ

2
<Window.Resources> 
    <DataTemplate x:Key="CloseText"> 
     <TextBlock Text="{Binding}" Margin="-1,1,0,0" /> 
    </DataTemplate> 
</Window.Resources> 

...

<CheckBox Content="All" ContentTemplate="{StaticResource CloseText}"/> 

как часть стиля флажок (в тексте или в качестве ссылки на ресурс):

<DataTemplate x:Key="CloseText"> 
     <TextBlock Text="{Binding}" Margin="-3,1,0,0" /> 
    </DataTemplate> 
    <Style TargetType="CheckBox"> 
     <Setter Property="FontFamily" Value="Segoe UI" /> 
     <Setter Property="FontStyle" Value="Italic" /> 
     <Setter Property="Margin" Value="50,2,0,0" /> 
     <Setter Property="Padding" Value="-1,0,0,0" /> 
     <Setter Property="ContentTemplate"> 
      <Setter.Value> 
       <DataTemplate> 
        <TextBlock Text="{Binding}" Margin="-3,1,0,0" /> 
       </DataTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
    <Style TargetType="CheckBox" x:Key="CheckBox01"> 
     <Setter Property="FontFamily" Value="Courier" /> 
     <Setter Property="FontStyle" Value="Oblique" /> 
     <Setter Property="Margin" Value="40,2,0,0" /> 
     <Setter Property="Padding" Value="10,0,0,0" /> 
     <Setter Property="ContentTemplate" Value="{StaticResource CloseText}" /> 
    </Style> 
+0

Только один последний вопрос, пожалуйста. Можно ли включить DataTemplate в стиль кнопки> – Paparazzi

+0

, да, просто объявите DataTemplate перед стилем и добавьте для него сеттер – PashaPash

Смежные вопросы