2009-03-28 11 views
4

私はWPFでCanvasを使用しています。Canvas araの外側に子どもが描画されないようにしたいと思います。 WPFでは、キャンバスのClipToBoundsプロパティをTrueに設定するだけで、これは簡単です。期待どおりに機能します。UIElement.ClipToBoundsはWPFで、Silverlightではありません。 Silverlightでシミュレーションするには?

サンプルXAMLをSilverlightに移植すると、ClipToBoundsが存在しないため、問題が発生します。この機能をシミュレートする方法はありますか?私はCanvasから派生し、必要に応じてMeasure/Arrangeメソッドをオーバーライドして嬉しいです。

答えて

7

私自身が解決策を見つけました。このようなArrangeOverrideメソッドをオーバーライドしてください...

protected override Size ArrangeOverride(Size finalSize) 
{ 
    RectangleGeometry clipRectGeometry = new RectangleGeometry(); 
    clipRectGeometry.Rect = new Rect(new Point(0,0), finalSize); 
    Clip = clipRectGeometry; 

    return base.ArrangeOverride(); 
} 
+0

しかし、どうすればコントロールのデフォルトのクリッピングを防ぐことができますか? –

関連する問題