2014-01-18 94 views
2

IM使用大量的文本框和標籤,有很多常見的旁邊,我的問題是如果 在wpf而不是複製粘貼?使用文本框和標籤繼承

例如,如果我有以下的文本框,而不是名稱和屏幕 的地方,我想所有的文本框具有相同的行爲

<TextBox x:Name="name2" 
        AcceptsReturn="True" 
        AllowDrop="True" 
        PreviewDragEnter="DropText_PreviewDragEnter" 
        PreviewDrop="DropText_PreviewDrop" 
        PreviewDragOver="DropText_PreviewDragOver" 

        HorizontalAlignment="Left" Height="20" TextWrapping="Wrap" 
        VerticalAlignment="Top" Width="80" Grid.Column="4" Margin="4,50,0,0" Grid.Row="2" 
        /> 

     <TextBox x:Name="name1" 
        AcceptsReturn="True" 
        AllowDrop="True" 
        PreviewDragEnter="DropText_PreviewDragEnter" 
        PreviewDrop="DropText_PreviewDrop" 
        PreviewDragOver="DropText_PreviewDragOver" 

        HorizontalAlignment="Left" 
        Height="20" 
        TextWrapping="Wrap" 
        Text="" VerticalAlignment="Top" Width="80" Grid.Column="4" Margin="4,75,0,0" Grid.Row="2"/> 
+0

使用樣式。見例如[WPF導覽](http://www.codeproject.com/Articles/18388/A-Guided-Tour-of-WPF-Part-5-Styles)或[在WPF視頻中使用樣式](http:///www.youtube.com/watch?v=CBs5eEsIk3A)。 – LPL

回答

1

您可以使用Style,將保存所有爲控制設置:

<Style TargetType="{x:Type TextBox}"> 
    <Setter Property="AcceptsReturn" Value="True" /> 
    <Setter Property="AllowDrop" Value="True" /> 
    ... 
    <Setter Property="Margin" Value="4,75,0,0" /> 
</Style> 

如果風格定義密鑰,它僅適用於控制,它明確指出。例如:

<Style x:Key="TextBoxOneStyle" TargetType="{x:Type TextBox}"> 
    <Setter Property="AcceptsReturn" Value="False" /> 
    <Setter Property="AllowDrop" Value="True" /> 
    ... 
    <Setter Property="Margin" Value="4,0,0,0" /> 
</Style> 

<Style x:Key="TextBoxTwoStyle" TargetType="{x:Type TextBox}"> 
    <Setter Property="AcceptsReturn" Value="True" /> 
    <Setter Property="AllowDrop" Value="True" /> 
    ... 
    <Setter Property="Margin" Value="4,75,0,0" /> 
</Style> 

使用:

<TextBox Name="TextBoxOne" 
     Style="{StaticResource TextBoxOneStyle}" /> 

<TextBox Name="TextBoxTwo" 
     Style="{StaticResource TextBoxTwoStyle}" /> 

您也可以通過EventSetter指定事件處理程序:

<Style TargetType="{x:Type TextBox}"> 
    <EventSetter Event="PreviewDragEnter" Handler="DropText_PreviewDragEnter" /> 
</Style> 

請訪問以下鏈接,瞭解更多信息:

Styling and Templating MSDN