我在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?
亲切的问候
答案 0 :(得分:1)
您应该使用VisualTree
的{{1}}属性,如果属于ControlTemplate
,则属性为FrameworkElementFactory
。
或者,如果您可以将ControlTemplate的内容保留在Xaml中,则可以使用XamlReader
。
请参阅this question on stackoverflow。