WPF自定义窗口基类
WPF自定义窗口基类时,窗口基类只定义.cs文件,xaml文件不定义。继承自定义窗口的类xaml文件的根节点就不再是<Window>,
而是自定义窗口类名(若自定义窗口与继承者不在同一个命名空间,还得加上命名空间),继承自定义窗口类后台代码也得修改为继承自自定义窗口
exp:
//继承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自学入门(九)WPF自定义窗口基类
今天简单记录一个知识点:WPF自定义窗口基类,常用winform的人知道,winform的窗体继承是很好用的,写一个基础窗体,直接在后台代码改写继承窗体名.但如果是WPF要继承窗体,我个人感觉没有理解 ...
- WPF 之 创建继承自Window 基类的自定义窗口基类
开发项目时,按照美工的设计其外边框(包括最大化,最小化,关闭等按钮)自然不同于 Window 自身的,但窗口的外边框及窗口移动.最小化等标题栏操作基本都是一样的.所以通过查看资料,可按如下方法创建继承 ...
- WPF自定义窗口最大化显示任务栏
原文:WPF自定义窗口最大化显示任务栏 当我们要自定义WPF窗口样式时,通常是采用设计窗口的属性 WindowStyle="None" ,然后为窗口自定义放大,缩小,关闭按钮的样式 ...
- Android 自定义Activity基类与TitleBar
我们在开发App的时候有时候碰到多个界面有一个共同点的时候,比如,都有相同的TitleBar,并且TitleBar可以设置显示的文字.TitleBar上的点击事件,如果给每一个Activity都写一遍 ...
- wpf 自定义窗口,最大化时覆盖任务栏解决方案
原文:wpf 自定义窗口,最大化时覆盖任务栏解决方案 相信很多人使用wpf时会选择自定义美观的窗口,因此会设置WindowStyle="None" 取消自带的标题栏.但这样使用 W ...
- WPF之数据绑定基类
数据绑定方法 在使用集合类型作为列表控件的ItemsSource时一般会考虑使用ObservalbeCollection,它实现了INotifyCollectionChanged和INotifyPro ...
- wpf之mvvm基类
当我们用MVVM设计模式的时候要实现INotifyPropertyChanged,每次都要实现这个接口比较麻烦,所以基类的作用就体现出来了.代码如下: 1 2 3 4 5 6 7 8 9 10 1 ...
- How to: Implement a Custom Base Persistent Class 如何:实现自定义持久化基类
XAF ships with the Business Class Library that contains a number of persistent classes ready for use ...
- WPF 自定义窗口
在WPF中,经常需要对窗口进行设置,下面讲讲常用的几个设置. 1.无边框窗口 WindowStyle="None" 窗口样式无 AllowsTransparency="T ...
随机推荐
- 刨根问底U3D---Vector3 你到底是蔬菜呢还是水果呢?
事情的起因还是因为一段代码,因为在做一个2D TileBase的游戏 所以需要有一个简单的 Tile坐标到世界坐标的变换 public static Vector3 GetTileWorldPosBy ...
- js_css_dl.dt实现列表展开、折叠效果
第一种方式:不提倡 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- JQuery MultiSelect(左右选择框)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- mongodb版本特性
2.x index,writeConcern, readPreference 3.0 wiredtiger, pluggable staorage engine, improved mmapv1 3 ...
- python的win32操作
## _*_ coding:UTF-8 _*___author__ = 'shanl'import win32apiimport win32conimport win32guifrom ctypes ...
- Aspect Oriented Programming (AOP)
切面”指的是那些在你写的代码中在项目的不同部分且有相同共性的东西.它可能是你代码中处理异常.记录方法调用.时间处理.重新执行一些方法等等的一些特殊方式.如果你没有使用任何面向切面编程的类库来做这些事情 ...
- JQuery 层次选择器
<!DOCTYPE HTML> <html> <head> <title> 使用jQuery层次选择器 </title> <scrip ...
- O2O管理问题怎么解决?
O2O被认为是零售行业的最大变革.O2O模式凭着线上线下一体化融合,无差别的消费体验迅速拉拢了大批希望进军电商的传统零售企业,同时催生了大量以O2O为生的新兴企业.O2O是一种新的消费模式,给消费者带 ...
- tomcat域名访问配置
模拟线上环境,在本地以域名访问系统思路 1.首先在hosts文件将域名映射为本地IP 2.假如服务器80端口已被占用,可以用nginx转发,在nginx/vhosts/abc.com加入如下配置 se ...
- 【转】malloc与free的底层实现
本文转自:http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201210975312473/ 如何查看进程发生缺页中断的次数? 用ps ...