我一直在尝试将以下代码转换为纯 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,我无法将边框作为 Visual 传递,因为它是 FrameworkElementFactory。
只是我迷路了,任何帮助将不胜感激。谢谢你的帮助