【问题标题】:Set silverlight Template from code?从代码设置silverlight模板?
【发布时间】:2010-01-02 14:24:30
【问题描述】:

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

【问题讨论】:

    标签: silverlight templates


    【解决方案1】:

    从根本上讲,您需要附加到控件的加载事件。此时您可以分配给 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"];
    }
    

    【讨论】:

      猜你喜欢
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      • 2013-02-15
      • 2014-11-29
      • 1970-01-01
      • 2010-11-07
      相关资源
      最近更新 更多