如何将wpf xaml controltemplate及其内容翻译成c#

时间:2015-09-18 13:51:23

标签: c# wpf xaml

我在WPF中有这个XAML,我想将它翻译成C#,但我找不到任何方法。

<Style x:Key="OptionsStyle" TargetType="{x:Type UserControl}">
    <Style.Resources>
                <ResourceDictionary Source="/Resources;component/BorderStyle.xaml" />
    </Style.Resources>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type UserControl}">
                <ContentPresenter Content="{StaticResource FormBorderStyle}" />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

这是我试过的

public class MyUserControl : UserControl
{
    public MyUserControl()
    {
        Template = new ControlTemplate(typeof(UserControl))
        {
            SOMETHING (there is not big choice here :( ) = new ContentPresenter() { Content = FindResource("FormBorderStyle") }
        };
    }
}

我找不到将ContentPresenter放入ControlTemplate的方法,或者它应该是其他东西而不是ControlTemplate?

亲切的问候

1 个答案:

答案 0 :(得分:1)

您应该使用VisualTree的{​​{1}}属性,如果属于ControlTemplate,则属性为FrameworkElementFactory。 或者,如果您可以将ControlTemplate的内容保留在Xaml中,则可以使用XamlReader。 请参阅this question on stackoverflow