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();
        }
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM