WPF基础学习笔记2-内容控件

控件详解

1.内容控件

                                                             内容控件
System.Windows.Controls.Lable继承自System.Windows.Controls.ContentControl类
System.Windows.Controls.TextBldck继承自FrameworkElement类
System.Windows.Controls.Button继承自System.Windows.Controls.ContentControl类
System.Windows.Controls.Border继承自Decorator类
System.Windows.Controls.RadioButton继承自System.Windows.Controls.ContentControl类
System.Windows.Controls.CheckBox继承自System.Windows.Controls.ContentControl类
System.Windows.Controls.ToolTip继承自System.Windows.Controls.ContentControl类
System.Windows.Controls.GroupBox继承自System.Windows.Controls.ContentControl类
System.Windows.Controls.Expander继承自System.Windows.Controls.ContentControl类
System.Windows.Controls.Frame继承自System.Windows.Controls.ContentControl类

1.1 Lable控件

 Width   Lable 的宽度

Height   Lable的高度

Content Lable的内容显示

HorizontalAlignment Lable水平对齐位置

VerticalAlignment Lable垂直对齐位置

FintSize Lable的字体大小

Foreground Lable字体颜色

           <Label 
            Width="100" 
            Height="30" Content="DBC编辑器"
            HorizontalAlignment="Left"
            VerticalAlignment="Top" 
            FontSize="18"
            Foreground="Red"
            />

1.2 TextBlock

  

 Text  TextBlock 的内容,如果标签有文本内容,会将其加到Text内容后面

FontSize TextBlock的字体大小

FontWeight TextBlock的字体设置 Black是字体加粗

Foreground TextBlock的字体颜色

HorizontalAlignment TextBlock水平位置

Margin TextBlock位置坐标(左上右下)

<LineBreak>  换行

       <TextBlock 
            Text="DBC编辑器" 
            FontSize="20" 
            FontWeight="Black" 
            Foreground="Orange" 
            HorizontalAlignment="Left" 
            Margin="10,30,20,0">
            轻量级编辑器加载一<LineBreak/>
            轻量级编辑器加载二<LineBreak/>
            轻量级编辑器加载三<LineBreak/>
        </TextBlock>

1.3 Button

 Width Button的宽度

Height Button的高度

HorizontalAlignment Button的水平位置

VerticalAlignment Button的垂直位置

Content Button的显示内容

Margin Button的坐标位置(左上右下)

Background Button的背景颜色

BorderBrush Button的边框设置,这里设置透明色Transparent

Foreground Button的字体颜色

FontSize Button的字体大小

Click Button的点击事件,在后面事件名称点击F12,打开处理事件函数

MouseMove 鼠标移动到Button触发事件,在后面事件名称点击F12,打开处理事件函数

        <Button Width="100" Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
                Content="生成DBC" Margin="10,80,0,0" Background="Teal" 
                BorderBrush="Transparent" Foreground="Orange" FontSize="20"
                Click="Butten_Click_DBC" MouseMove="Butten_MouseMove_dbc">
            
        </Button>

1.4 Border

    在另一个元素四周绘制边框和/或背景。

     Border只能有一个孩子,若是要显示多个子元素,需要在父Border元素中放置一个附加Panel元素。然后将子元素放置在该Panel元素中。如果需要在内容周围显示边框,则必须将元素放置在父Border元素中。

 Width Border的宽度

Height Border的高度

Background Border的背景颜色

BorderBrush Border的边框颜色

BorderThickness Border的边框宽度(左上右下)

CornerRadius Border的外围幅度角倒圆大小

 运行点击效果

 1.5  RadioButton

 表示可由用户选择但不能清除的按钮,可以通过单击来设置IsChecked的RadioButton属性,但只能以编程方式清除该属性。

   

Content RadioButton的名称

GroupName RadioButton分组名称,区分单选项的组

Margin RadioButton的位置坐标

FontSize RadioButton的字体大小

Foreground RadioButton字体颜色

VerticalAlignment RadioButton垂直位置

HorizontalAlignment RadioButton水平位置

 1.6 CheckBox

 表示用户可以选择和清除的控件

CheckBox控件继承ToogleButton并可以有三种状态:选中(选定的)、未选中(清除的)和不确定。

content CheckBox内容

Margin CheckBox坐标位置

VerticalAlignment CheckBox垂直位置

HorizontalAlignment CheckBox水平位置

Width CheckBox的宽度

Height CheckBox的高度

FontSize CheckBox的字体大小

BorderBrush CheckBox的外框颜色

        <CheckBox Content="UDS" Margin="200,100,0,0" VerticalAlignment="Top"
                  HorizontalAlignment="Left" Width="80" Height="20" FontSize="20"
                  BorderBrush="Red">
            
        </CheckBox>
        <CheckBox Content="DoIP" Margin="200,130,0,0" VerticalAlignment="Top"
                  HorizontalAlignment="Left" Width="80" Height="20" FontSize="20"
                  BorderBrush="Red">

        </CheckBox>
        <CheckBox Content="XCP" Margin="200,160,0,0" VerticalAlignment="Top"
                  HorizontalAlignment="Left" Width="80" Height="20" FontSize="20"
                  BorderBrush="Red">

        </CheckBox>
        <Button Width="100" Height="50" Margin="180,190,0,0" HorizontalAlignment="Left"
                VerticalAlignment="Top" Content="模式选择" FontSize="20" Foreground="Red"
                Click='Button_Mode'></Button>

        private void Button_Mode(object sender, RoutedEventArgs e)
        {
            UIElementCollection childdren = gridMain.Children;
            StringBuilder sbf = new StringBuilder("模式激活是:");
            foreach(UIElement itme in childdren)
            {
                if(itme is CheckBox && (itme as CheckBox).IsChecked.Value)
                {
                    sbf.Append((itme as CheckBox).Content + ";");
                }
            }
            MessageBox.Show(sbf.ToString());
        }
    

 1.7 ToolTip

  表示一个控件,该控件可创建一个弹出窗口,以便在界面中显示元素信息。

 该控件不能独立使用,需要结合其他控件

            <Button
                Background="Transparent" FontSize="30" Foreground="Red"
                Content="打开DBC" Click="Button_DBC_Open">
                <Button.ToolTip>
                    <TextBlock>这是要加载打开文件格式为DBC的文件</TextBlock>
                </Button.ToolTip>
            </Button>

鼠标放到按钮上提示信息

 1.8 GroupBox

  表示一个控件,该控件用于创建具有用户界面的(UI)内容边框和标题的容器。

 Header GroupBox标题

其他控件在规则下自由组合

<GroupBox Width="300" FontSize="20" Height="400" HorizontalContentAlignment="Right" 
                  VerticalAlignment="Top" Margin="482,0,10,0" ForceCursor="True" FontWeight="Black">
            <GroupBox.Header >数据编辑工具</GroupBox.Header>
            <Grid>
             <Button Margin="29,26,145,293" RenderTransformOrigin="-0.444,-0.523">
                DBC创建
            </Button>
                <Button Margin="127,231,67,79" RenderTransformOrigin="-0.444,-0.523">
                    DBC编辑
                </Button>
                <Button Margin="148,26,26,293" RenderTransformOrigin="-0.444,-0.523">
                    DBC生成
                </Button>
                <Button Margin="29,107,145,212" RenderTransformOrigin="-0.444,-0.523">
                    DBC加载
                </Button>
            </Grid>
            
        </GroupBox>

1.9  Expander

  表示一种控件,该控件显示具有可折叠内容显示窗口标题

 Header Expander的标题

IsExpanded Expander的折叠状态,默认是折叠的

ExpanDirection Expander的折叠方向

        <Grid>
            <Expander Header="DBC查看模式" FontSize="20" Foreground="DarkOrange" IsExpanded="True"
                      BorderThickness="1" BorderBrush="Green" ExpandDirection="Down"
                      VerticalAlignment="Top" HorizontalAlignment="Center">
                <StackPanel Orientation="Vertical">
                    <CheckBox FontSize="20">信号</CheckBox>
                    <CheckBox FontSize="20">协议</CheckBox>
                    <CheckBox FontSize="20">ECU</CheckBox>
                    <CheckBox FontSize="20">网关</CheckBox>
                </StackPanel>
                
            </Expander>
        </Grid>

 展开

折叠

 

 

1.10   Frame

框架是一种支持导航的内容控件

*****************************《完》********************************

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WPF 中,使用多线程和定时器可以帮助我们更好地管理界面的响应和处理复杂的任务。下面介绍一些常用的线程和定时器相关的类和方法。 线程相关的类和方法: 1. Thread 类:表示一个独立的线程,可以使用 Start 方法启动线程,使用 Join 方法等待线程结束。 2. ThreadPool 类:表示一个线程池,可以使用 QueueUserWorkItem 方法将任务添加到线程池中执行。 3. Dispatcher 类:表示一个 WPF 程序的消息循环,可以使用 Invoke 或 BeginInvoke 方法在 UI 线程上执行代码。 定时器相关的类和方法: 1. Timer 类:表示一个定时器,可以使用 Start 方法启动定时器,使用 Stop 方法停止定时器。 2. DispatcherTimer 类:表示一个 WPF 程序的定时器,可以使用 Start 方法启动定时器,使用 Stop 方法停止定时器。 下面是一个使用多线程和定时器的示例代码: ```csharp public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); // 创建一个新线程,并将任务添加到线程池中执行 ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork)); // 创建一个定时器,并设置间隔时间为1秒 DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromSeconds(1); timer.Tick += Timer_Tick; timer.Start(); } // 定时器的 Tick 事件处理方法 private void Timer_Tick(object sender, EventArgs e) { // 在 UI 线程上更新界面 Dispatcher.Invoke(() => { lblTime.Content = DateTime.Now.ToString(); }); } // 新线程执行的任务 private void DoWork(object state) { // 在新线程上执行耗时操作 Thread.Sleep(5000); // 在 UI 线程上更新界面 Dispatcher.Invoke(() => { lblResult.Content = "任务完成!"; }); } } ``` 在上面的代码中,我们使用了一个新线程来执行一个耗时的任务,并使用定时器在 UI 线程上更新界面。通过多线程和定时器的结合使用,我们可以更好地管理界面的响应和处理复杂的任务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值