Files
Ramitta-lib/Ramitta/winTitleBar.xaml.cs

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
}
}