WPF自定义组合控件的用法和WPF对象级资源的用法

    一、WPF自定义组合控件的用法

  由于C#WPF内的原生控件的模样不太好看,所以很多时候都需要自己去修改原本的控件,通过自定义控件模板,已达到优化控件的目的,但在模板内的控件用常规的方法不好访问,虽然有通过名称获取控件的方法,但由于是xaml,所以不好控制在什么时候去访问。

实现如下效果,以下是通过两个Lable和一个TextBox控件组合成一个Lable控件后的效果。

1、Xaml代码:

 <Label Content="label1"  Grid.Column="1" Grid.Row="15" FontSize="18" Margin="10,10,10.4,0.2" ContentTemplate="{StaticResource datatemplate1}" Grid.RowSpan="2"/>

 

 对datatemplate1的内容定义

<Window.Resources>
<DataTemplate x:Key="datatemplate1" >
            <StackPanel Orientation="Horizontal">
                <Label Content="闪烁频率f:"/>
                <TextBox Text="   " x:Name="write_frequency" Width="65" Background="AliceBlue" IsEnabled="False" Loaded="write_frequency_Loaded"/>
                <Label Content="HZ"/>
            </StackPanel>
        </DataTemplate>
 </Window.Resources>

注意:常规下我们无法在后台对名称write_frequency控件进行操作,我们注册Loaded事件

2、后台代码

这一步是用C#代码定义XAML代码里的资源

TextBox inputFreTextBox;
private void write_frequency_Loaded(object sender, RoutedEventArgs e)
{
   this.inputFreTextBox = sender as TextBox;
}

之后通过对inputFreTextBox操作,控制该对象。

参考:https://jingyan.baidu.com/article/acf728fd99706ff8e410a340.html

二、WPF对象级资源的用法

       一中的应用中用到WPF资源,WPF不但支持程序性级资源(外部文件与程序主体分离,编译器允许我们把外部文件编译进程序主体),而且还支持对象级资源,每个界面元素都可以携带自己的资源并可被自己的子级元素所共享。

1、StaticResource和DynamicResource的区别

(1)StaticResource是静态资源,程序载入内存时对资源一次性使用,之后不再去访问这个资源了。

(2)DynamicResource是动态资源,程序运行过程中依然会去访问资源。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值