silverlight - 从代码设置silverlight模板?

标签 silverlight templates

如果我的模板放在 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"];
}

关于silverlight - 从代码设置silverlight模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1991726/

相关文章:

.net - Silverlight 2.0已准备好用于商务应用程序

silverlight - 如何在 MVVM 中播放声音和动画

c++ - 如何将模板参数包扩展为一系列模板化参数?

c++ - 为什么模板类的实现和声明应该在同一个头文件中?

wpf - 从图像中获取路径几何

asp.net-mvc - Silverlight 还是 MVC.NET?

wpf - 将 Silverlight 应用程序转换为 WPF

C++ 模板类运算符,用于括号和等于插入和获取元素

c++ - 使用标准 C++ 库 vector 作为底层实现创建一个 Set 模板类

C++ - 通过模板仿函数专门化成员函数模板不编译