2009-12-16 4 views
5

TextBox 및 PasswordBox에 대해 일반적인 스타일을 정의하려면 어떻게해야합니까?PasswordBox 및 TextBox에 대한 일반적인 스타일

내 접근 방식은 TargetType FrameworkElement에 대한 스타일을 정의했지만이 스타일은 일반적인 스타일로 작동하지 않습니다. 그러면 FrameworkElement에는 거의 속성이 없습니다. 내 텍스트 상자 스타일이

<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

는 "System.Windows.Controls.PasswordBox"에서 발견이

<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"나던 같은 것을 시도해보십시오 PasswordBoxStyle에게 동일 "ControlProperty" "System.Windows.Controls.Control"및 "TextboxSpecproperty" "System.Windows.Controls.TextBox"에 대한 동일 –

+0

아, 어, 알았어. 이해 해 .. 내가 해결 했어. 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> 
관련 문제