从代码设置 silverlight 模板?

2024-03-24

如果我的模板放置在 ResourceDictionary 中,如何从代码中设置 control.Template?


从根本上讲,您需要附加到控件加载事件。此时您可以分配给 Template 属性。您可以从资源字典中检索模板。

例如,假设您有一个包含 TextBox 的 UserControl,您希望在 UserControl 的代码中为其提供不同的模板,并且该模板存储在 UserControls Resources 属性中。

<UserControl xmlns="Namespaces removed for clarity" >
  <UserControl.Resources>
     <ControlTemplate TargetType="TextBox" x:Key="MyTextBox">
       <!-- template mark up here -->
     </ControlTemplate>
  <UserControl.Resources>
  <TextBox x:Name="txt" Loaded="txt_loaded" />
</UserControl>

在 UserControl 的代码隐藏中,您将拥有以下代码:-

void txt_Loaded(object sender, RoutedEventArgs e)
{
    ((TextBox)sender).Template = (ControlTemplate)Resources["MyTextBox"];
}

在本例中,我使用文本框自己的加载事件,但是,您也可以使用 UserControls 加载事件。

void Page_Loaded(object sender, RoutedEventArgs e)
{
    txt.Template = (ControlTemplate)Resources["MyTextBox"];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从代码设置 silverlight 模板? 的相关文章

随机推荐