• WPF 自定义可拖动标题栏


    要注意,拖拽的地方,需要加背景色,否则 DrageMove 将无效

    MainWindows.xaml

    <Window  x:Class="Report.MainWindow"
                      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                      xmlns:views="clr-namespace:Report.Views" WindowState="Normal" WindowStyle="None" ResizeMode="NoResize" WindowStartupLocation="CenterScreen"
                      mc:Ignorable="d" d:DesignWidth="1280" d:DesignHeight="720" Width="780" Height="360">
        <Window.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <!--<ResourceDictionary Source="/VipSoft.Themes;component/Styles/MainWindow.xaml"/>-->
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Window.Resources>
        <Border Style="{StaticResource Layout-Border}">
            <DockPanel>
                <DockPanel LastChildFill="False" Dock="Top" Height="40" Background="#1F6AAC"   MouseLeftButtonDown="DockContainer_OnDragMove" >
                    <Image Name="LoginLogoImage" Style="{StaticResource Logo-Image}"/>
                    <TextBlock  Name="TitleBlock" Style="{StaticResource Layout-Title}"  Text="XX 信息管理系统"></TextBlock>
                    <Button DockPanel.Dock="Right"  Style="{StaticResource Button-Close}" ToolTip="关闭"  Click="Close_OnClick"></Button>
                    <ToggleButton  DockPanel.Dock="Right"  Style="{StaticResource Button-Max}" Name="TopMaxButton"  Click="MaxButton_Click" ></ToggleButton>
                    <Button  DockPanel.Dock="Right" Style="{StaticResource Button-Min}" ToolTip="最小化"  Click="MinButton_Click" ></Button>
                    <Button  DockPanel.Dock="Right" Style="{StaticResource Button-Top-Bar}" Content="&#xe78c;" ToolTip="帮助"></Button>
                    <Button  DockPanel.Dock="Right" Style="{StaticResource Button-Top-Bar}" Content="&#xe7a3;" ToolTip="设置"></Button>
                </DockPanel>
                <DockPanel>
                    <views:Navigate  Padding="5"  Background="#F1F2F3" Width="70" x:Name="NavigateMenu" MenuClick="Navigate_OnMenuClick"></views:Navigate>
                    <Border BorderBrush="#D1D3D5" BorderThickness="0.9,0,0,0" Padding="2" Background="#F1F2F3" >
                        <ContentControl Name="MainContent" ></ContentControl>
                    </Border>
                </DockPanel>
            </DockPanel>
        </Border>
    </Window>

    MainWindows.xaml.cs

    private void DockContainer_OnDragMove(object sender, MouseButtonEventArgs e)
    {
        switch (e.ClickCount)
        {
            // Background="White"  事件所在的容器,不加这个属性,不能拖拽
            case 1://单击
                { 
                    this.DragMove();
                    break;
                }
            case 2://双击
                {
                    MaxButton_Click(null, null);
                    TopMaxButton.IsChecked = WindowState == WindowState.Maximized;
                    break;
                }
        }
    }
    
    private void MaxButton_Click(object sender, RoutedEventArgs e)
    {
        WindowState = WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
    }
    
    private void MinButton_Click(object sender, RoutedEventArgs e)
    {
        WindowState = WindowState.Minimized;
    }
    
     
    private void Close_OnClick(object sender, RoutedEventArgs e)
    { 
        MessageBoxResult vr = System.Windows.MessageBox.Show("确定要退出应用吗", "操作提示",MessageBoxButton.YesNo, MessageBoxImage.Question);
        if (vr == MessageBoxResult.OK) // 如果是确定,就执行下面代码,记得换上自己的代码喔
        {
            Close();
            System.Windows.Application.Current.Shutdown();
        }
    }

  • 相关阅读:
    IDEA插件备忘录
    SpringBoot2基础笔记
    EasyCode模板,配合通用mapper,dubbo项目使用
    七牛云存储
    Apache POI
    SSM项目中关于配置的一二三
    SSM整合笔记
    Spring5学习笔记
    ThinkPHP框架,按分类,计算商品价格区间,来完成价格搜索
    PHP常用符号和函数
  • 原文地址:https://www.cnblogs.com/vipsoft/p/16736959.html
Copyright © 2020-2023  润新知