2009-05-28 7 views
0

XAML(Silverlight 2アプリケーション用)ではグループボックスのような要素を作成しようとしていますが、ひねりがあります。グループボックスのテキストを回転しようとしています

通常、グループボックスは境界から構成され、メインコンテンツは境界内に配置され、ヘッダーコンテンツは境界自体の上に配置されます。

私がしようとしているのは、左端の枠にヘッダーテキストを配置し、270度回転させ、上端を正していることです。しかし、私の脳は、回転変換を理解しようとすることに苦労します。

<ControlTemplate TargetType="Controls1:GroupBox"> 
    <Grid Background="{TemplateBinding Background}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Border BorderThickness="{TemplateBinding BorderThickness}" Grid.Row="1" Grid.RowSpan="2" 
      BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="3"> 
     <Border.Clip> 
     <GeometryGroup FillRule="EvenOdd"> 
      <RectangleGeometry x:Name="FullRect" Rect="0,0,300,200"/> 
      <RectangleGeometry x:Name="HeaderRect" Rect="6,0,100,100"/> 
     </GeometryGroup> 
     </Border.Clip> 
    </Border> 
    <ContentPresenter Grid.Row="2" ContentTemplate="{TemplateBinding ContentTemplate}" 
         Content="{TemplateBinding Content}" Margin="{TemplateBinding Padding}"/> 
    <ContentControl x:Name="HeaderContainer" Margin="6,0,0,0" Grid.Row="0" Grid.RowSpan="2" HorizontalAlignment="Left" IsEnabled="False" > 
     <ContentPresenter Margin="3,0,3,0" ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" /> 
    </ContentControl> 
    </Grid> 
</ControlTemplate> 

すべてのヘルプははるかに高く評価:

は、ここで私が変更したい既存のグループボックスのための私のControlTemplate、です!

答えて

2

最も簡単な方法は、RenderTransformを使用することです。 exempleについて:

<TextBlock Background="Red" Width="100" Height="50"> 
    <TextBlock.RenderTransform> 
     <RotateTransform Angle="270"></RotateTransform> 
    </TextBlock.RenderTransform> 
    My title! 
</TextBlock> 

また、プロパティCenterXとCenterY

で回転中心を指定することができ、この情報がお役に立てば幸い!あなたはこのようにキャンバスを使用することができますラベル位置にajustする

EDIT

<Canvas Margin="0,45,0,-45"> 
    <Canvas.RenderTransform> 
     <RotateTransform Angle="270"></RotateTransform> 
    </Canvas.RenderTransform> 
    <TextBlock Background="Red"> 
     My title! 
    </TextBlock> 
</Canvas> 
+0

はええ、私はそこまでだと思いますが、それはそれは正しく配置され、ハードビットを得ます。 –

関連する問題