我是靠谱客的博主 跳跃香烟,最近开发中收集的这篇文章主要介绍WPF继承窗口 或控件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

WPF自定义窗口基类时,窗口基类只定义.cs文件,xaml文件不定义。继承自定义窗口的类xaml文件的根节点就不再是<Window>,
而是自定义窗口类名(若自定义窗口与继承者不在同一个命名空间,还得加上命名空间),继承自定义窗口类后台代码也得修改为继承自自定义窗口
exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//继承Window类的自定义窗口类
namespace  WPF_Study.Entity
{
    using  System.Windows;
 
    public  class  WindowBase:Window
     {
         private  const  int  Fixed_Width = 540;
         private  const  int  Fixed_Height = 350;
 
         public  WindowBase() :  base ()
         {
             this .MaxWidth = Fixed_Width;
             this .MaxHeight = Fixed_Height;
             this .MinWidth = Fixed_Width;
             this .MinHeight = Fixed_Height;
         }
     }
}
 
//继承自定义窗口
//xaml文件
<localEntity:WindowBase x:Class= "WPF_Study.TestWindowBase"
         xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:localEntity= "clr-namespace:WPF_Study.Entity"
         Title= "TestWindowBase"  >
     <Grid>
         <Grid.Resources>
             <Style TargetType= "{x:Type Button}" >
                 <Setter Property= "Width"  Value= "60" />
                 <Setter Property= "Height"  Value= "30" />
                 <Setter Property= "Margin"  Value= "5" />
             </Style>
         </Grid.Resources>
         <Grid.RowDefinitions>
             <RowDefinition Height= "40*" />
             <RowDefinition Height= "221*" />
         </Grid.RowDefinitions>
         <WrapPanel Grid.Row= "0"  Grid.Column= "0" >
             <Button Content= "查询"  x:Name= "btnSearch" ></Button>
             <Button Content= "新增"  x:Name= "btnAdd" ></Button>
             <Button Content= "修改"  x:Name= "btnAmend" ></Button>
             <Button Content= "删除"  x:Name= "btnDelete" ></Button>
         </WrapPanel>
         <DataGrid x:Name= "dataGrid"  AutoGenerateColumns= "False"  Grid.Row= "2"  Grid.Column= "0"  CanUserAddRows= "False" >
             <DataGrid.Columns>
                 <DataGridTextColumn Header= "窗口编号"  Binding= "{Binding Win}" />
                 <DataGridTextColumn Header= "评价器地址"  Binding= "{Binding Evalutor}" />
                 <DataGridTextColumn Header= "条屏地址"  Binding= "{Binding StripeScreen}" />
                 <DataGridTextColumn Header= "IP"  Binding= "{Binding IP}" />
                 <DataGridTextColumn Header= "注册设备号"  Binding= "{Binding RegNum}" />
                 <DataGridTextColumn Header= "描述"  Binding= "{Binding Description}"  Width= "*" />
             </DataGrid.Columns>
         </DataGrid>
     </Grid>
</localEntity:WindowBase>
//对应后台代码
using  WPF_Study.Entity;
 
namespace  WPF_Study
{
     /// <summary>
     /// Interaction logic for TestWindowBase.xaml
     /// </summary>
     public  partial  class  TestWindowBase : WindowBase
     {
         public  TestWindowBase()
         {
             InitializeComponent();
         }
     }
}

  

最后

以上就是跳跃香烟为你收集整理的WPF继承窗口 或控件的全部内容,希望文章能够帮你解决WPF继承窗口 或控件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部