Conversión de ControlTemplate XAML a C #

Me he quedado perplejo al tratar de convertir el siguiente código en puro C #. Este código XAML es del blog de Cavanaghs sobre cómo hacer esquinas redondeadas en cualquier cosa. El código funciona pero necesito convertirlo a C # ya que necesito que sea dinámico en algunos casos. Si pudieran ayudar estaría genial.

<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>

Hasta ahora tengo lo siguiente pero recibo errores.

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");

Por lo que puedo decir, no puedo hacer el VisualBrush como FrameworkElementFactory (se bloquea), pero si lo declaro como un elemento regular VisualBrush no puedo pasar el borde como Visual ya que es un FrameworkElementFactory.

Simplemente me estoy perdiendo, cualquier ayuda sería apreciada. Gracias por cualquier ayuda

Respuestas a la pregunta(2)

Su respuesta a la pregunta