2012-03-31 93 views
2

這是我UserControl在Blend創建:WPF用戶控件編輯屬性

<StackPanel Orientation="Horizontal" Background="#FF0084FF" Height="400"> 
     <TextBlock TextWrapping="Wrap" Margin="10,0,20,0" Text="Kategorija1" FontFamily="Segoe Print" FontWeight="Bold" FontSize="26.667" RenderTransformOrigin="0.5,0.5" Foreground="White" TextAlignment="Center" VerticalAlignment="Center"> 
      <TextBlock.RenderTransform> 
       <TransformGroup> 
        <ScaleTransform/> 
        <SkewTransform/> 
        <RotateTransform Angle="-90"/> 
        <TranslateTransform/> 
       </TransformGroup> 
      </TextBlock.RenderTransform> 
     </TextBlock> 

現在我想TextBlock text屬性可編輯,這樣我就可以在C#代碼改變它的後面。

如何做到這一點?

回答

4

只需使用x給TextBlock的名稱:NAME =「myTextBlock」

然後在後面的代碼,你可以使用myTextBlock.Text =「其他一些文字」

<StackPanel Orientation="Horizontal" Background="#FF0084FF" Height="400"> 
    <TextBlock x:Name = "myTextBlock" TextWrapping="Wrap" Margin="10,0,20,0" Text="Kategorija1" FontFamily="Segoe Print" FontWeight="Bold" FontSize="26.667" RenderTransformOrigin="0.5,0.5" Foreground="White" TextAlignment="Center" VerticalAlignment="Center"> 
     <TextBlock.RenderTransform> 
      <TransformGroup> 
       <ScaleTransform/> 
       <SkewTransform/> 
       <RotateTransform Angle="-90"/> 
       <TranslateTransform/> 
      </TransformGroup> 
     </TextBlock.RenderTransform> 
    </TextBlock> 
</StackPanel> 

如果你需要修改它的類之外,你可以使用x:FieldModifier把它公開,以及使任何外班可以修改它。

<StackPanel Orientation="Horizontal" Background="#FF0084FF" Height="400"> 
    <TextBlock x:Name = "myTextBlock" x:FieldModifier="public" TextWrapping="Wrap" Margin="10,0,20,0" Text="Kategorija1" FontFamily="Segoe Print" FontWeight="Bold" FontSize="26.667" RenderTransformOrigin="0.5,0.5" Foreground="White" TextAlignment="Center" VerticalAlignment="Center"> 
     <TextBlock.RenderTransform> 
      <TransformGroup> 
       <ScaleTransform/> 
       <SkewTransform/> 
       <RotateTransform Angle="-90"/> 
       <TranslateTransform/> 
      </TransformGroup> 
     </TextBlock.RenderTransform> 
    </TextBlock> 
</StackPanel> 
+0

+1 for x:FieldModifier。我只是不知道。 – 2012-03-31 18:10:12

2

爲了在後面的代碼中編輯TextBlock,您需要給它一個名稱,通過它可以訪問它。

<TextBlock Name="_textBox" ... 

現在後面的代碼中,你可以通過名稱來訪問它_textBox