Wpf 动态添加控件设置样式

91 篇文章 1 订阅
24 篇文章 1 订阅
新公司主要用wpf做项目,之前也没有接触过这类东西,经过一周的学习发现wpf的页面布局,样式设置和网页设计差不多。

两者都有样式文件可以为控件统一设置样式,就连优先级都差不多,发现还挺有意思。下面进入正题,怎样在程序运行后动态添加控件。

  要想添加控件,容器是必须要有的,几大布局控件都可以 Grid Canvas UniformGrid DockPanel StackPanel  WrapPanel 下面就以WrapPanel 为例进行演示

先上代码

/// <summary>

/// 添加控件的方法

/// </summary>

/// <param name="Container"> Pannel类的实例</param>

 /// <param name="Control">UIElement 实例</param>

 public static void DynamicAdd(Panel Container, UIElement Control)

 {

     Container.Children.Add(Control);

 }

 

 private void buttonAdd_Click(object sender, RoutedEventArgs e)

 {

 

     Button btn = new Button();

     btn.Width = 200;

     btn.Height = 70;

     //设置按钮样式使用此种方法必须将资源文件引用到当前页面

     btn.Style = Resources["NoticeButton"] as Style;

     //此种方法也可以设置样式

     //获取App.xaml中的样式个人更喜欢这种

     //Style style = (Style)this.FindResource("NoticeButton");

     //为按钮设置样式

     // btn.Style = style;

     //将btn添加到ufg

     DynamicAdd(wrp, btn);

 }


这里是后台的代码很简单只是在设置样式的时候要注意一下用哪种方法

前台xaml代码主要是对资源的引用

<Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary  Source="/Css/EventsButton.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
</Window.Resources>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition ></RowDefinition>
            <RowDefinition Height="30"></RowDefinition>
        </Grid.RowDefinitions>
        <WrapPanel Name="wrp" Grid.Row="0"></WrapPanel>
        <Button Content="添加" Grid.Row="1" Height="23" HorizontalAlignment="Center"  Name="buttonAdd" VerticalAlignment="Top" Width="75" Click="buttonAdd_Click" />
    </Grid>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值