キャンバス内に丸い角を持つ境界線があり、追加するものが境界内の領域にクリップされるようにキャンバスにクリッピング領域を追加したいとします。私はキャンバスのClipプロパティを設定できることを知っていますが、キャンバスとオブジェクトはXAMLで割り当てられるサイズよりも動的にサイズが変更されるため、使用するパスを計算する方法を理解できません。 UIElement(ここでは境界線)からPathGeometryを派生させる方法はありますか?これに接近する最善の方法は何ですか?ここでは、私が使っているテストページのXAMLを紹介します。Silverlight 2で動的にパスを決定する
<UserControl x:Class="TimelinePrototype.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Margin="10">
<Button x:Name="cmdDraw" FontSize="18" Click="cmdDraw_Click" Content="Draw" Margin="0,0,5,0" VerticalAlignment="Bottom" />
<TextBlock x:Name="txtDateRange" FontSize="18" Margin="10,0,10,10" VerticalAlignment="Bottom" />
</StackPanel>
<Canvas x:Name="TimelineCanvas" Grid.Row="1" HorizontalAlignment="Stretch"
SizeChanged="TimelineCanvas_SizeChanged">
<Border x:Name="TimelineBorder"
Background="LightGray"
BorderBrush="Black"
BorderThickness="2"
CornerRadius="15"
Margin="10"
Grid.Row="1"
VerticalAlignment="Top">
</Border>
</Canvas>
</Grid>
私はそれらを使用することを考えていましたが、これを行うための他のより巧妙な方法があるかどうか疑問に思っていました。 –