2011-07-28 19 views
1

私は45x45(ハードコードされたサイズ - アイテムのグリッドの一部です)のUserControlを持っています。特定のプロパティに値がある場合、これを示す右上隅に「クリップ」を表示したい。可視性自体は簡単ですが、私の矩形はコントロールの境界を越えて他のコントロールと重なっています。私は "ClipToBounds"プロパティを使ってみましたが、何もしませんでした。これをコントロール全体に追加すると、クリップは完全に機能しましたが、主矩形のホバー効果(セルを塗りつぶします)が機能しなくなりました。WPFクリップ矩形

アイデア?私はこれが簡単だと確信していますが、まだWPF(そして幾何学的には恐ろしいですが、ポリゴンを使用していません)にはまだまだ新しくなっています。

<Grid>   
    <Rectangle x:Name="MainRectangle" Fill="{Binding Background}" Opacity="0" MouseEnter="MainRectangle_MouseEnter" MouseLeave="MainRectangle_MouseLeave"> 
     <Rectangle.Triggers> 
      <EventTrigger RoutedEvent="Rectangle.MouseEnter"> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.0" To="0.8" Duration="0:0:0.33" AutoReverse="False" /> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
      <EventTrigger RoutedEvent="Rectangle.MouseLeave"> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.8" To="0.0" Duration="0:0:0.33" AutoReverse="False" /> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </Rectangle.Triggers> 
    </Rectangle> 
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding VisualCount}" /> 
    <Rectangle Fill="Black" HorizontalAlignment="Right" Height="20" Margin="0,-14,-20,0" Stroke="Black" VerticalAlignment="Top" Width="20" Visibility="{Binding HasNotes}"> 
     <Rectangle.RenderTransform> 
      <RotateTransform CenterX="0" CenterY="0" Angle="45" /> 
     </Rectangle.RenderTransform> 
    </Rectangle> 
</Grid> 

答えて

1
ここ

簡単なパスである:

<Path Fill="Black" HorizontalAlignment="Right" Visibility="{Binding HasNotes}"> 
    <Path.Data> 
     <PathGeometry> 
      <PathFigure StartPoint="0,0"> 
       <LineSegment Point="14,0"/> 
       <LineSegment Point="14,14"/> 
      </PathFigure> 
     </PathGeometry> 
    </Path.Data> 
</Path> 
+0

パーフェクト

はここで完全なマークアップです。私は自分自身でそれを考え出しただろうとは思っていません。ありがとう! – RubyHaus

+0

それは難しいことではない、試してみる必要があります! –

関連する問題