2009-12-16 2 views
5

Как определить общий стиль для TextBox и PasswordBox?Общий стиль для PasswordBox и TextBox

Мой подход, я определил стиль для TargetType FrameworkElement, но это не работает как обычный стиль, тогда в FrameworkElement не существует некоторых свойств.

Мой TextBox Стиль равен PasswordBoxStyle

<Style TargetType="{x:Type TextBox}"> 
    <Setter Property="SnapsToDevicePixels" Value="True"/> 
    <Setter Property="OverridesDefaultStyle" Value="True"/> 
    <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}"/> 
    <Setter Property="MinHeight" Value="30"/> 
    <Setter Property="AllowDrop" Value="true"/> 
    <Setter Property="FontFamily" Value="Verdana"/> 
    <Setter Property="FontSize" Value="14"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TextBox}"> 
       <Border Name="Border" CornerRadius="4" Padding="2" Background="White" BorderBrush="Black" BorderThickness="1" > 
        <ScrollViewer Margin="0" x:Name="PART_ContentHost"/> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

ответ

12

попробовать что-то вроде этого

<Style x:Key="textboxPasswordboxStyles"> 
    <Setter Property="Control.ControlProperty" Value="value" /> 
    <Setter Property="TextBox.TextboxSpecproperty" Value="value" /> 
    <Setter Property="PasswordBox.PasswordBoxSpecProperty" Value="value" /> 
</Style> 
<Style TargetType="{x:Type TextBox}" 
    BasedOn="{StaticResource textboxPasswordboxStyles}"> 
</Style> 
<Style TargetType="{x:Type PasswordBox}" 
    BasedOn="{StaticResource textboxPasswordboxStyles}"> 
</Style> 
+0

Стиль недвижимости "PasswordBoxSpecProperty" оленья кожа найдена в "System.Windows.Controls.PasswordBox" то же для «ControlProperty» «System.Windows.Controls.Control» и «TextboxSpecproperty» «System.Windows.Controls.TextBox» –

+0

ah lol, ладно, я понимаю .. я решил ... TextBox.MinHeight thx:) –

+0

@MarioBinder как вы разрешили ошибку относительно свойств? У меня такая же проблема. Должен ли я помещать свойство стиля в App.xaml? В каталоге ресурсов ..... – Tarek

0
<Style x:Key="textboxPasswordboxStyles" TargetType="Control"> 
    <Setter Property="SnapsToDevicePixels" Value="True" /> 
    <Setter Property="OverridesDefaultStyle" Value="True" /> 
    <Setter Property="KeyboardNavigation.TabNavigation" Value="None" /> 
    <Setter Property="Height" Value="20" /> 
    <Setter Property="MinHeight" Value="20" /> 
    <Setter Property="MaxHeight" Value="22"/> 
    <Setter Property="BorderThickness" Value="1.5"/> 
    <Setter Property="AllowDrop" Value="true" /> 
    <Setter Property="Template"> 
     <Setter.Value> 

      <ControlTemplate TargetType="{x:Type Control}"> 
       <Grid> 
        <Border Name="Border" CornerRadius="8" BorderThickness="{TemplateBinding BorderThickness}" > 
         <Border.Background> 
          <SolidColorBrush Color="White" x:Name="Background" /> 
         </Border.Background> 

         <Border.BorderBrush> 
          <SolidColorBrush Color="Gray" x:Name="BorderBrush" Opacity="1"/> 
         </Border.BorderBrush> 

         <ScrollViewer Margin="10,0,10,0" x:Name="PART_ContentHost" VerticalAlignment="Center"/> 

        </Border> 





       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 

    </Setter> 


</Style> 

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