次のコードを純粋な C# に変換しようとして困惑しました。この XAML コードは、何でも角を丸くする方法に関する Cavanaghs ブログからのものです。コードは機能しますが、場合によっては動的にする必要があるため、C# に変換する必要があります。あなたがそれを助けることができれば、それは素晴らしいことです.
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType='{x:Type ListViewItem}'>
<Grid>
<Border CornerRadius="15" Name="mask" Background="White"/>
<StackPanel Background="Beige">
<StackPanel.OpacityMask>
<VisualBrush Visual="{Binding ElementName=mask}"/>
</StackPanel.OpacityMask>
<GridViewRowPresenter Content="{TemplateBinding Content}" Columns="{TemplateBinding GridView.ColumnCollection}"/>
<TextBlock Background="LightBlue" Text="{Binding News}" />
</StackPanel>
</Grid>
</ControlTemplate>
</Setter.Value>
これまでのところ、次のものがありますが、エラーが発生しています。
FrameworkElementFactory border = new FrameworkElementFactory(typeof(Border));
border.SetValue(Border.BackgroundProperty, Brushes.White);
border.SetValue(Border.CornerRadiusProperty, new CornerRadius(8, 8, 8, 8));
border.SetValue(Border.NameProperty, "roundedMask");
私が知る限り、VisualBrush を FrameworkElementFactory (クラッシュ) として作成することはできませんが、それを通常の要素 VisualBrush として宣言すると、FrameworkElementFactory であるため、境界線を Visual として渡すことができません。
単に私は迷子になっています。どんな助けもいただければ幸いです。助けてくれてありがとう