Convertendo ControlTemplate XAML em C #
Fiquei perplexo ao tentar converter o código a seguir em c # puro. Este código XAML é do blog Cavanaghs sobre como criar cantos arredondados em qualquer coisa. O código funciona, mas preciso convertê-lo em c #, pois preciso que seja dinâmico em alguns casos. Se você pudesse ajudar, seria ótimo.
<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>
Até agora, tenho o seguinte, mas estou recebendo erros.
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");
Tanto quanto posso dizer, não posso criar o VisualBrush como um FrameworkElementFactory (falhas), mas se eu o declarar como um elemento regular VisualBrush, não posso passar a borda como um Visual, pois é um FrameworkElementFactory.
Simplesmente estou me perdendo, qualquer ajuda seria apreciada. Obrigado por qualquer ajuda