customise the messagebox

This commit is contained in:
NaBian committed 2019-01-24 23:42:12 +08:00
1 parent 8a8241f0e6
commit 43d1e7e4f4
15 files changed
+268 -115

No files matched your search

+109 -46
View File
@@ -28,7 +28,7 @@ namespace HandyControl.Controls
private MessageBoxResult _messageBoxResult = MessageBoxResult.Cancel;
private bool _showOK;
private bool _showOk;
private bool _showCancel;
@@ -50,7 +50,7 @@ namespace HandyControl.Controls
{
_messageBoxResult = MessageBoxResult.OK;
Close();
}, (s, e) => e.CanExecute = _showOK));
}, (s, e) => e.CanExecute = _showOk));
CommandBindings.Add(new CommandBinding(ControlCommands.Cancel, (s, e) =>
{
_messageBoxResult = MessageBoxResult.Cancel;
@@ -92,12 +92,16 @@ namespace HandyControl.Controls
/// <param name="caption"></param>
public static MessageBoxResult Success(string messageBoxText, string caption = null)
{
var messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
messageBox._showImage = true;
messageBox._image = ResourceHelper.GetResource<Geometry>(ResourceToken.SuccessGeometry);
messageBox._imageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.SuccessBrush);
messageBox.ShowDialog();
MessageBox messageBox = null;
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
messageBox._showImage = true;
messageBox._image = ResourceHelper.GetResource<Geometry>(ResourceToken.SuccessGeometry);
messageBox._imageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.SuccessBrush);
messageBox.ShowDialog();
});
return messageBox._messageBoxResult;
}
@@ -109,10 +113,14 @@ namespace HandyControl.Controls
/// <param name="caption"></param>
public static MessageBoxResult Info(string messageBoxText, string caption = null)
{
var messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
SetImage(messageBox, MessageBoxImage.Information);
messageBox.ShowDialog();
MessageBox messageBox = null;
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
SetImage(messageBox, MessageBoxImage.Information);
messageBox.ShowDialog();
});
return messageBox._messageBoxResult;
}
@@ -124,10 +132,14 @@ namespace HandyControl.Controls
/// <param name="caption"></param>
public static MessageBoxResult Warning(string messageBoxText, string caption = null)
{
var messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
SetImage(messageBox, MessageBoxImage.Warning);
messageBox.ShowDialog();
MessageBox messageBox = null;
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
SetImage(messageBox, MessageBoxImage.Warning);
messageBox.ShowDialog();
});
return messageBox._messageBoxResult;
}
@@ -139,10 +151,14 @@ namespace HandyControl.Controls
/// <param name="caption"></param>
public static MessageBoxResult Error(string messageBoxText, string caption = null)
{
var messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
SetImage(messageBox, MessageBoxImage.Error);
messageBox.ShowDialog();
MessageBox messageBox = null;
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
SetImage(messageBox, MessageBoxImage.Error);
messageBox.ShowDialog();
});
return messageBox._messageBoxResult;
}
@@ -154,12 +170,16 @@ namespace HandyControl.Controls
/// <param name="caption"></param>
public static MessageBoxResult Fatal(string messageBoxText, string caption = null)
{
var messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
messageBox._showImage = true;
messageBox._image = ResourceHelper.GetResource<Geometry>(ResourceToken.FatalGeometry);
messageBox._imageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.PrimaryTextBrush);
messageBox.ShowDialog();
MessageBox messageBox = null;
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK);
SetButtonStatus(messageBox, MessageBoxButton.OK);
messageBox._showImage = true;
messageBox._image = ResourceHelper.GetResource<Geometry>(ResourceToken.FatalGeometry);
messageBox._imageBrush = ResourceHelper.GetResource<Brush>(ResourceToken.PrimaryTextBrush);
messageBox.ShowDialog();
});
return messageBox._messageBoxResult;
}
@@ -171,36 +191,79 @@ namespace HandyControl.Controls
/// <param name="caption"></param>
public static MessageBoxResult Ask(string messageBoxText, string caption = null)
{
var messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel);
SetButtonStatus(messageBox, MessageBoxButton.OKCancel);
SetImage(messageBox, MessageBoxImage.Question);
messageBox.ShowDialog();
MessageBox messageBox = null;
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(null, messageBoxText, caption, MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel);
SetButtonStatus(messageBox, MessageBoxButton.OKCancel);
SetImage(messageBox, MessageBoxImage.Question);
messageBox.ShowDialog();
});
return messageBox._messageBoxResult;
}
public static MessageBoxResult CustomShow(string messageBoxText, string caption = null, MessageBoxButton button = MessageBoxButton.OK, string iconKey = "", string iconBrushKey = "", MessageBoxResult defaultResult = MessageBoxResult.None)
/// <summary>
/// 自定义信息展示
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
public static MessageBoxResult Show(MessageBoxInfo info)
{
var messageBox = CreateMessageBox(null, messageBoxText, caption, button, MessageBoxImage.None, defaultResult);
messageBox._showImage = true;
messageBox._image = ResourceHelper.GetResource<Geometry>(iconKey);
messageBox._imageBrush = ResourceHelper.GetResource<Brush>(iconBrushKey);
messageBox.ShowDialog();
MessageBox messageBox = null;
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(null, info.MessageBoxText, info.Caption, info.Button, MessageBoxImage.None, info.DefaultResult);
SetButtonStatus(messageBox, info.Button);
if (!string.IsNullOrEmpty(info.IconKey))
{
messageBox._showImage = true;
messageBox._image = ResourceHelper.GetResource<Geometry>(info.IconKey);
messageBox._imageBrush = ResourceHelper.GetResource<Brush>(info.IconBrushKey);
}
messageBox.Style = info.Style;
messageBox.ShowDialog();
});
return messageBox._messageBoxResult;
}
public static MessageBoxResult Show(string messageBoxText, string caption = null, MessageBoxButton button = MessageBoxButton.OK, MessageBoxImage icon = MessageBoxImage.None, MessageBoxResult defaultResult = MessageBoxResult.None)
{
return Show(null, messageBoxText, caption, button, icon, defaultResult);
}
/// <summary>
/// 信息展示
/// </summary>
/// <param name="messageBoxText"></param>
/// <param name="caption"></param>
/// <param name="button"></param>
/// <param name="icon"></param>
/// <param name="defaultResult"></param>
/// <returns></returns>
public static MessageBoxResult Show(string messageBoxText, string caption = null,
MessageBoxButton button = MessageBoxButton.OK, MessageBoxImage icon = MessageBoxImage.None,
MessageBoxResult defaultResult = MessageBoxResult.None) =>
Show(null, messageBoxText, caption, button, icon, defaultResult);
/// <summary>
/// 信息展示
/// </summary>
/// <param name="owner"></param>
/// <param name="messageBoxText"></param>
/// <param name="caption"></param>
/// <param name="button"></param>
/// <param name="icon"></param>
/// <param name="defaultResult"></param>
/// <returns></returns>
public static MessageBoxResult Show(System.Windows.Window owner, string messageBoxText, string caption = null, MessageBoxButton button = MessageBoxButton.OK, MessageBoxImage icon = MessageBoxImage.None, MessageBoxResult defaultResult = MessageBoxResult.None)
{
var messageBox = CreateMessageBox(owner, messageBoxText, caption, button, icon, defaultResult);
SetButtonStatus(messageBox, button);
SetImage(messageBox, icon);
messageBox.ShowDialog();
MessageBox messageBox = null;
Application.Current.Dispatcher.Invoke(() =>
{
messageBox = CreateMessageBox(owner, messageBoxText, caption, button, icon, defaultResult);
SetButtonStatus(messageBox, button);
SetImage(messageBox, icon);
messageBox.ShowDialog();
});
return messageBox._messageBoxResult;
}
@@ -246,10 +309,10 @@ namespace HandyControl.Controls
switch (messageBoxButton)
{
case MessageBoxButton.OK:
messageBox._showOK = true;
messageBox._showOk = true;
break;
case MessageBoxButton.OKCancel:
messageBox._showOK = true;
messageBox._showOk = true;
messageBox._showCancel = true;
break;
case MessageBoxButton.YesNo:
+21
View File
@@ -0,0 +1,21 @@
using System.Windows;
namespace HandyControl.Data
{
public class MessageBoxInfo
{
public string MessageBoxText { get; set; }
public string Caption { get; set; }
public MessageBoxButton Button { get; set; } = MessageBoxButton.OK;
public string IconKey { get; set; }
public string IconBrushKey { get; set; }
public MessageBoxResult DefaultResult { get; set; } = MessageBoxResult.None;
public Style Style { get; set; }
}
}
+32 -32
View File
@@ -1,68 +1,68 @@
namespace HandyControl.Data
{
internal class ResourceToken
public class ResourceToken
{
public static readonly string SuccessGeometry = nameof(SuccessGeometry);
public const string SuccessGeometry = nameof(SuccessGeometry);
public static readonly string InfoGeometry = nameof(InfoGeometry);
public const string InfoGeometry = nameof(InfoGeometry);
public static readonly string ErrorGeometry = nameof(ErrorGeometry);
public const string ErrorGeometry = nameof(ErrorGeometry);
public static readonly string WarningGeometry = nameof(WarningGeometry);
public const string WarningGeometry = nameof(WarningGeometry);
public static readonly string AskGeometry = nameof(AskGeometry);
public const string AskGeometry = nameof(AskGeometry);
public static readonly string FatalGeometry = nameof(FatalGeometry);
public const string FatalGeometry = nameof(FatalGeometry);
public static readonly string PrimaryBrush = nameof(PrimaryBrush);
public const string PrimaryBrush = nameof(PrimaryBrush);
public static readonly string SuccessBrush = nameof(SuccessBrush);
public const string SuccessBrush = nameof(SuccessBrush);
public static readonly string InfoBrush = nameof(InfoBrush);
public const string InfoBrush = nameof(InfoBrush);
public static readonly string DangerBrush = nameof(DangerBrush);
public const string DangerBrush = nameof(DangerBrush);
public static readonly string WarningBrush = nameof(WarningBrush);
public const string WarningBrush = nameof(WarningBrush);
public static readonly string AccentBrush = nameof(AccentBrush);
public const string AccentBrush = nameof(AccentBrush);
public static readonly string PrimaryTextBrush = nameof(PrimaryTextBrush);
public const string PrimaryTextBrush = nameof(PrimaryTextBrush);
public static readonly string ThirdlyTextBrush = nameof(ThirdlyTextBrush);
public const string ThirdlyTextBrush = nameof(ThirdlyTextBrush);
public static readonly string BlurGradientValue = nameof(BlurGradientValue);
internal const string BlurGradientValue = nameof(BlurGradientValue);
public static readonly string ButtonCustom = nameof(ButtonCustom);
internal const string ButtonCustom = nameof(ButtonCustom);
public static readonly string PaginationButtonStyle = nameof(PaginationButtonStyle);
internal const string PaginationButtonStyle = nameof(PaginationButtonStyle);
public static readonly string WindowWin10 = nameof(WindowWin10);
internal const string WindowWin10 = nameof(WindowWin10);
public static readonly string AddTagButtonStyle = nameof(AddTagButtonStyle);
internal const string AddTagButtonStyle = nameof(AddTagButtonStyle);
public static readonly string RadioGroupItemDefault = nameof(RadioGroupItemDefault);
internal const string RadioGroupItemDefault = nameof(RadioGroupItemDefault);
public static readonly string RadioGroupItemSingle = nameof(RadioGroupItemSingle);
internal const string RadioGroupItemSingle = nameof(RadioGroupItemSingle);
public static readonly string RadioGroupItemHorizontalFirst = nameof(RadioGroupItemHorizontalFirst);
internal const string RadioGroupItemHorizontalFirst = nameof(RadioGroupItemHorizontalFirst);
public static readonly string RadioGroupItemHorizontalLast = nameof(RadioGroupItemHorizontalLast);
internal const string RadioGroupItemHorizontalLast = nameof(RadioGroupItemHorizontalLast);
public static readonly string RadioGroupItemVerticalFirst = nameof(RadioGroupItemVerticalFirst);
internal const string RadioGroupItemVerticalFirst = nameof(RadioGroupItemVerticalFirst);
public static readonly string RadioGroupItemVerticalLast = nameof(RadioGroupItemVerticalLast);
internal const string RadioGroupItemVerticalLast = nameof(RadioGroupItemVerticalLast);
public static readonly string TabItemCapsuleDefault = nameof(TabItemCapsuleDefault);
internal const string TabItemCapsuleDefault = nameof(TabItemCapsuleDefault);
public static readonly string TabItemCapsuleSingle = nameof(TabItemCapsuleSingle);
internal const string TabItemCapsuleSingle = nameof(TabItemCapsuleSingle);
public static readonly string TabItemCapsuleHorizontalFirst = nameof(TabItemCapsuleHorizontalFirst);
internal const string TabItemCapsuleHorizontalFirst = nameof(TabItemCapsuleHorizontalFirst);
public static readonly string TabItemCapsuleHorizontalLast = nameof(TabItemCapsuleHorizontalLast);
internal const string TabItemCapsuleHorizontalLast = nameof(TabItemCapsuleHorizontalLast);
public static readonly string TabItemCapsuleVerticalFirst = nameof(TabItemCapsuleVerticalFirst);
internal const string TabItemCapsuleVerticalFirst = nameof(TabItemCapsuleVerticalFirst);
public static readonly string TabItemCapsuleVerticalLast = nameof(TabItemCapsuleVerticalLast);
internal const string TabItemCapsuleVerticalLast = nameof(TabItemCapsuleVerticalLast);
}
}
+3 -3
View File
@@ -48,15 +48,15 @@ namespace HandyControl.Data
internal class ResourceToken
{
<#foreach(var item in geometryList){#>
public static readonly string <#=item#> = nameof(<#=item#>);
public const string <#=item#> = nameof(<#=item#>);
<#}#>
<#foreach(var item in brushList){#>
public static readonly string <#=item#> = nameof(<#=item#>);
public const string <#=item#> = nameof(<#=item#>);
<#}#>
<#foreach(var item in styleList){#>
public static readonly string <#=item#> = nameof(<#=item#>);
public const string <#=item#> = nameof(<#=item#>);
<#}#>
}
+1
View File
@@ -163,6 +163,7 @@
<Compile Include="Data\Gif\GifPropertyItem.cs" />
<Compile Include="Data\Gif\GifPropertyItemInternal.cs" />
<Compile Include="Data\Gif\GPStream.cs" />
<Compile Include="Data\MessageBoxInfo.cs" />
<Compile Include="Data\SystemVersionInfo.cs" />
<Compile Include="Tools\Converter\Boolean2StrConverter.cs" />
<Compile Include="Tools\Converter\Int2StrConverter.cs" />
+8 -6
View File
@@ -55,14 +55,16 @@
<Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="UseLayoutRounding" Value="True"/>
<Setter Property="NonClientAreaBackground" Value="{DynamicResource TitleBrush}"/>
<Setter Property="NonClientAreaForeground" Value="White"/>
<Setter Property="CloseButtonHoverBackground" Value="#e71123"/>
<Setter Property="CloseButtonHoverForeground" Value="White"/>
<Setter Property="NonClientAreaBackground" Value="White"/>
<Setter Property="NonClientAreaForeground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="CloseButtonBackground" Value="Transparent"/>
<Setter Property="OtherButtonHoverBackground" Value="{DynamicResource DarkPrimaryBrush}"/>
<Setter Property="OtherButtonHoverForeground" Value="White"/>
<Setter Property="CloseButtonForeground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="CloseButtonHoverBackground" Value="#e81123"/>
<Setter Property="CloseButtonHoverForeground" Value="White"/>
<Setter Property="OtherButtonBackground" Value="Transparent"/>
<Setter Property="OtherButtonForeground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="OtherButtonHoverBackground" Value="#e5e5e5"/>
<Setter Property="OtherButtonHoverForeground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:Window">
+22 -19
View File
@@ -1,23 +1,26 @@
<controls:BlurWindow x:Class="HandyControlDemo.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:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"
xmlns:userControl="clr-namespace:HandyControlDemo.UserControl"
mc:Ignorable="d"
BorderThickness="1"
BorderBrush="#262e2f"
NonClientAreaBackground="#262e2f"
OtherButtonHoverBackground="#888580"
Style="{StaticResource WindowBlur}"
WindowState="Maximized"
Title="MainWindow"
ResizeMode="CanResizeWithGrip"
Name="MyWindow"
DataContext="{Binding Main,Source={StaticResource Locator}}"
d:DesignHeight="800"
d:DesignWidth="1400">
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:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"
xmlns:userControl="clr-namespace:HandyControlDemo.UserControl"
mc:Ignorable="d"
BorderThickness="1"
BorderBrush="#262e2f"
NonClientAreaBackground="#262e2f"
OtherButtonHoverBackground="#888580"
CloseButtonForeground="White"
OtherButtonHoverForeground="White"
OtherButtonForeground="White"
Style="{StaticResource WindowBlur}"
WindowState="Maximized"
Title="MainWindow"
ResizeMode="CanResizeWithGrip"
Name="MyWindow"
DataContext="{Binding Main,Source={StaticResource Locator}}"
d:DesignHeight="800"
d:DesignWidth="1400">
<controls:Window.NonClientAreaContent>
<userControl:NoUserContent/>
</controls:Window.NonClientAreaContent>
+10 -1
View File
@@ -47,7 +47,7 @@ namespace HandyControlDemo.Properties.Langs {
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
@@ -654,6 +654,15 @@ namespace HandyControlDemo.Properties.Langs {
}
}
/// <summary>
/// 查找类似 点击打开自定义消息窗口 的本地化字符串。
/// </summary>
public static string OpenCustomMessageWindow {
get {
return ResourceManager.GetString("OpenCustomMessageWindow", resourceCulture);
}
}
/// <summary>
/// 查找类似 点击打开自定义非客户端区域窗口 的本地化字符串。
/// </summary>
@@ -480,4 +480,7 @@
<data name="UploadStr" xml:space="preserve">
<value>Upload;Uploading</value>
</data>
<data name="OpenCustomMessageWindow" xml:space="preserve">
<value>open custom message window</value>
</data>
</root>
@@ -480,4 +480,7 @@
<data name="UploadStr" xml:space="preserve">
<value>上传;上传中</value>
</data>
<data name="OpenCustomMessageWindow" xml:space="preserve">
<value>点击打开自定义消息窗口</value>
</data>
</root>
@@ -1,7 +1,8 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"
xmlns:interactivity="clr-namespace:HandyControl.Interactivity;assembly=HandyControl">
xmlns:interactivity="clr-namespace:HandyControl.Interactivity;assembly=HandyControl"
xmlns:langs="clr-namespace:HandyControl.Properties.Langs;assembly=HandyControl">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Basic/Geometries.xaml"/>
@@ -90,4 +91,37 @@
</WrapPanel>
</ItemsPanelTemplate>
<Style x:Key="MessageBoxCustom" TargetType="controls:MessageBox" BasedOn="{StaticResource {x:Type controls:MessageBox}}">
<Setter Property="NonClientAreaBackground" Value="#262e2f"/>
<Setter Property="OtherButtonHoverBackground" Value="#888580"/>
<Setter Property="OtherButtonForeground" Value="White"/>
<Setter Property="OtherButtonHoverForeground" Value="White"/>
<Setter Property="NonClientAreaForeground" Value="White"/>
<Setter Property="CloseButtonForeground" Value="White"/>
<Setter Property="Content">
<Setter.Value>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Path x:Name="PART_Image" HorizontalAlignment="Center" Visibility="Collapsed" Grid.Row="0" Grid.Column="0" VerticalAlignment="Top" Margin="20,32,0,0" Width="30" Height="30" Stretch="Uniform"/>
<ScrollViewer Grid.Column="1" Grid.Row="0">
<TextBlock Margin="10,39,10,10" x:Name="PART_Message" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</ScrollViewer>
<StackPanel Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Margin="0,10,0,16" Orientation="Horizontal" Background="{DynamicResource RegionBrush}" HorizontalAlignment="Center">
<Button Visibility="{Binding IsEnabled,RelativeSource={RelativeSource Self},Converter={StaticResource Boolean2VisibilityConverter}}" IsCancel="True" MinWidth="88" Command="interactivity:ControlCommands.Cancel" Content="{x:Static langs:Lang.Cancel}" Margin="5,0"/>
<Button Visibility="{Binding IsEnabled,RelativeSource={RelativeSource Self},Converter={StaticResource Boolean2VisibilityConverter}}" IsDefault="True" MinWidth="88" Command="interactivity:ControlCommands.Confirm" Content="{x:Static langs:Lang.Confirm}" Margin="5,0" Background="#262e2f" Style="{StaticResource ButtonPrimary}"/>
<Button Visibility="{Binding IsEnabled,RelativeSource={RelativeSource Self},Converter={StaticResource Boolean2VisibilityConverter}}" IsCancel="True" MinWidth="88" Command="interactivity:ControlCommands.No" Content="{x:Static langs:Lang.No}" Margin="5,0"/>
<Button Visibility="{Binding IsEnabled,RelativeSource={RelativeSource Self},Converter={StaticResource Boolean2VisibilityConverter}}" IsDefault="True" MinWidth="88" Command="interactivity:ControlCommands.Yes" Content="{x:Static langs:Lang.Yes}" Margin="5,0" Background="#262e2f" Style="{StaticResource ButtonPrimary}"/>
</StackPanel>
</Grid>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
@@ -12,6 +12,7 @@
<Button Command="{Binding OpenWindowCmd}" CommandParameter="{x:Static data:MessageToken.BlurWindow}" Content="{x:Static langs:Lang.OpenBlurWindow}"/>
<Button Command="{Binding OpenWindowCmd}" CommandParameter="{x:Static data:MessageToken.CustomNonClientAreaWindow}" Content="{x:Static langs:Lang.OpenCustomNonClientAreaWindow}"/>
<Button Click="ButtonMessage_OnClick" Content="{x:Static langs:Lang.OpenMessageWindow}"/>
<Button Click="ButtonCustomMessage_OnClick" Content="{x:Static langs:Lang.OpenCustomMessageWindow}"/>
<Button Click="ButtonCustomContent_OnClick" Content="{x:Static langs:Lang.OpenCustomContentWindow}"/>
<Button Name="ButtonMouseFollow" Click="ButtonMouseFollow_OnClick" Content="{x:Static langs:Lang.OpenMouseFollowWindow}"/>
<Button Command="{Binding OpenWindowCmd}" CommandParameter="{x:Static data:MessageToken.NoNonClientAreaDragableWindow}" Content="{x:Static langs:Lang.OpenNoNonClientAreaDragableWindow}"/>
@@ -1,5 +1,6 @@
using System.Windows;
using HandyControl.Controls;
using HandyControl.Data;
using HandyControl.Tools;
using MessageBox = HandyControl.Controls.MessageBox;
@@ -18,6 +19,19 @@ namespace HandyControlDemo.UserControl
MessageBox.Show(Properties.Langs.Lang.GrowlAsk, Properties.Langs.Lang.Title, MessageBoxButton.YesNo, MessageBoxImage.Question);
}
private void ButtonCustomMessage_OnClick(object sender, RoutedEventArgs e)
{
MessageBox.Show(new MessageBoxInfo
{
MessageBoxText = Properties.Langs.Lang.GrowlAsk,
Caption = Properties.Langs.Lang.Title,
Button = MessageBoxButton.YesNo,
IconBrushKey = ResourceToken.AccentBrush,
IconKey = ResourceToken.AskGeometry,
Style = ResourceHelper.GetResource<Style>("MessageBoxCustom")
});
}
private void ButtonMouseFollow_OnClick(object sender, RoutedEventArgs e)
{
var picker = SingleOpenHelper.CreateControl<ColorPicker>();
@@ -64,7 +64,7 @@
<Setter.Value>
<ControlTemplate TargetType="Thumb">
<Border Padding="{TemplateBinding Padding}" Background="Transparent">
<Path Stretch="Uniform" Width="4" Fill="{DynamicResource PrimaryBrush}" Data="{StaticResource DragGeometry}" SnapsToDevicePixels="True"/>
<Path Stretch="Uniform" Width="4" Height="16" Fill="{DynamicResource PrimaryBrush}" Data="{StaticResource DragGeometry}" SnapsToDevicePixels="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
@@ -110,7 +110,7 @@
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Border x:Name="Bd" SnapsToDevicePixels="true" CornerRadius="4" Background="{TemplateBinding Background}">
<Path x:Name="PathMore" Data="{StaticResource DownGeometry}" Width="8" Margin="4,4,4,8" VerticalAlignment="Bottom" Fill="{DynamicResource PrimaryTextBrush}" Stretch="Uniform" SnapsToDevicePixels="True"/>
<Path x:Name="PathMore" Data="{StaticResource DownGeometry}" Height="5" Width="8" Margin="4,4,4,8" VerticalAlignment="Bottom" Fill="{DynamicResource PrimaryTextBrush}" Stretch="Uniform" SnapsToDevicePixels="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
+4 -5
View File
@@ -1,6 +1,5 @@
1. Font Blurry
2. ToolBar
3. ImageBrowser
4. NumericIcon & Background
5. Input Icon
6. Tag Icon
2. ImageBrowser
3. NumericIcon & Background
4. Input Icon
5. Tag Icon