104 lines
2.9 KiB
C#
104 lines
2.9 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
|
|
namespace Ramitta
|
|
{
|
|
public partial class winTitleBar : UserControl
|
|
{
|
|
public winTitleBar()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
#region 命令执行方法
|
|
|
|
private void MinimizeCommand_Executed(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
var window = Window.GetWindow(this);
|
|
if (window != null)
|
|
{
|
|
window.WindowState = WindowState.Minimized;
|
|
}
|
|
}
|
|
|
|
private void MaximizeCommand_Executed(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
var window = Window.GetWindow(this);
|
|
if (window != null)
|
|
{
|
|
window.WindowState = window.WindowState == WindowState.Maximized
|
|
? WindowState.Normal
|
|
: WindowState.Maximized;
|
|
}
|
|
}
|
|
|
|
private void CloseCommand_Executed(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
var window = Window.GetWindow(this);
|
|
if (window != null)
|
|
{
|
|
window.Close();
|
|
}
|
|
}
|
|
|
|
private void DragMoveCommand_Executed(object sender, ExecutedRoutedEventArgs e)
|
|
{
|
|
var window = Window.GetWindow(this);
|
|
if (window != null)
|
|
{
|
|
window.DragMove();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 鼠标事件处理
|
|
|
|
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
if (e.ChangedButton == MouseButton.Left && e.ClickCount == 2)
|
|
{
|
|
// 双击标题栏切换最大化/还原
|
|
var window = Window.GetWindow(this);
|
|
if (window != null)
|
|
{
|
|
//MaximizeCommand_Executed(null, null);
|
|
}
|
|
}
|
|
else if (e.ChangedButton == MouseButton.Left)
|
|
{
|
|
// 单机拖动窗口
|
|
var window = Window.GetWindow(this);
|
|
window?.DragMove();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 依赖属性
|
|
|
|
public static readonly DependencyProperty TitleProperty =
|
|
DependencyProperty.Register("Title", typeof(string), typeof(winTitleBar),
|
|
new PropertyMetadata("Application"));
|
|
|
|
public string Title
|
|
{
|
|
get { return (string)GetValue(TitleProperty); }
|
|
set { SetValue(TitleProperty, value); }
|
|
}
|
|
|
|
public static readonly DependencyProperty IconProperty =
|
|
DependencyProperty.Register("Icon", typeof(ImageSource), typeof(winTitleBar),
|
|
new PropertyMetadata(null));
|
|
|
|
public ImageSource Icon
|
|
{
|
|
get { return (ImageSource)GetValue(IconProperty); }
|
|
set { SetValue(IconProperty, value); }
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |