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

questionAnswers(2)

yourAnswerToTheQuestion