@@ -60,11 +60,14 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<None Remove="Fonts\ds-digib.ttf" /> | <None Remove="Fonts\ds-digib.ttf" /> | ||||
<None Remove="Images\bj.png" /> | <None Remove="Images\bj.png" /> | ||||
<None Remove="Images\error.png" /> | |||||
<None Remove="Images\Exp.png" /> | <None Remove="Images\Exp.png" /> | ||||
<None Remove="Images\fyf.ico" /> | <None Remove="Images\fyf.ico" /> | ||||
<None Remove="Images\gaugeMask.png" /> | <None Remove="Images\gaugeMask.png" /> | ||||
<None Remove="Images\hbl.ico" /> | <None Remove="Images\hbl.ico" /> | ||||
<None Remove="Images\ico.ico" /> | <None Remove="Images\ico.ico" /> | ||||
<None Remove="Images\info.png" /> | |||||
<None Remove="Images\question.png" /> | |||||
<None Remove="Images\redis.png" /> | <None Remove="Images\redis.png" /> | ||||
<None Remove="Images\State0.png" /> | <None Remove="Images\State0.png" /> | ||||
<None Remove="Images\State1.png" /> | <None Remove="Images\State1.png" /> | ||||
@@ -75,6 +78,7 @@ | |||||
<None Remove="Images\wx.jpg" /> | <None Remove="Images\wx.jpg" /> | ||||
<None Remove="Images\zfb.jpg" /> | <None Remove="Images\zfb.jpg" /> | ||||
<None Remove="Images\光柱.png" /> | <None Remove="Images\光柱.png" /> | ||||
<None Remove="Images\报错.png" /> | |||||
<None Remove="Images\配置.ico" /> | <None Remove="Images\配置.ico" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -94,11 +98,14 @@ | |||||
<ItemGroup> | <ItemGroup> | ||||
<Resource Include="Fonts\ds-digib.ttf" /> | <Resource Include="Fonts\ds-digib.ttf" /> | ||||
<Resource Include="Images\bj.png" /> | <Resource Include="Images\bj.png" /> | ||||
<Resource Include="Images\error.png" /> | |||||
<Resource Include="Images\Exp.png" /> | <Resource Include="Images\Exp.png" /> | ||||
<Resource Include="Images\fyf.ico" /> | <Resource Include="Images\fyf.ico" /> | ||||
<Resource Include="Images\gaugeMask.png" /> | <Resource Include="Images\gaugeMask.png" /> | ||||
<Resource Include="Images\hbl.ico" /> | <Resource Include="Images\hbl.ico" /> | ||||
<Resource Include="Images\ico.ico" /> | <Resource Include="Images\ico.ico" /> | ||||
<Resource Include="Images\info.png" /> | |||||
<Resource Include="Images\question.png" /> | |||||
<Resource Include="Images\redis.png" /> | <Resource Include="Images\redis.png" /> | ||||
<Resource Include="Images\State0.png" /> | <Resource Include="Images\State0.png" /> | ||||
<Resource Include="Images\State1.png" /> | <Resource Include="Images\State1.png" /> | ||||
@@ -111,6 +118,7 @@ | |||||
<Resource Include="Images\光柱.png"> | <Resource Include="Images\光柱.png"> | ||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> | <CopyToOutputDirectory>Always</CopyToOutputDirectory> | ||||
</Resource> | </Resource> | ||||
<Resource Include="Images\报错.png" /> | |||||
<Resource Include="Images\配置.ico"> | <Resource Include="Images\配置.ico"> | ||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> | <CopyToOutputDirectory>Always</CopyToOutputDirectory> | ||||
</Resource> | </Resource> | ||||
@@ -69,6 +69,11 @@ | |||||
<icon:PackIconModern Width="10" HorizontalAlignment="Center" Kind="Delete" /> | <icon:PackIconModern Width="10" HorizontalAlignment="Center" Kind="Delete" /> | ||||
</MenuItem.Icon> | </MenuItem.Icon> | ||||
</MenuItem> | </MenuItem> | ||||
<MenuItem Header="清空该页" Command="{Binding ClearPageCommand}" CommandParameter="{Binding MenuModel.SelectPageModels}"> | |||||
<MenuItem.Icon> | |||||
<icon:PackIconModern Width="10" HorizontalAlignment="Center" Kind="Clean" /> | |||||
</MenuItem.Icon> | |||||
</MenuItem> | |||||
<MenuItem Header="(加载)页面" Command="{Binding LoadAllPageCommand}"> | <MenuItem Header="(加载)页面" Command="{Binding LoadAllPageCommand}"> | ||||
<MenuItem.Icon> | <MenuItem.Icon> | ||||
<icon:PackIconModern Width="10" HorizontalAlignment="Center" Kind="DiskDownload" /> | <icon:PackIconModern Width="10" HorizontalAlignment="Center" Kind="DiskDownload" /> | ||||
@@ -239,6 +239,9 @@ | |||||
<Button Width="24" Cursor="Hand" BorderBrush="Transparent" Background="Transparent" CommandParameter="{Binding .}" Command="{Binding DataContext.DeletePageCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" VerticalAlignment="Center" Padding="0" ToolTip="删除页"> | <Button Width="24" Cursor="Hand" BorderBrush="Transparent" Background="Transparent" CommandParameter="{Binding .}" Command="{Binding DataContext.DeletePageCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" VerticalAlignment="Center" Padding="0" ToolTip="删除页"> | ||||
<icon:PackIconModern ToolTip="删除页" Width="10" HorizontalAlignment="Center" Foreground="White" Kind="Delete" /> | <icon:PackIconModern ToolTip="删除页" Width="10" HorizontalAlignment="Center" Foreground="White" Kind="Delete" /> | ||||
</Button> | </Button> | ||||
<Button Width="24" Cursor="Hand" BorderBrush="Transparent" Background="Transparent" CommandParameter="{Binding .}" Command="{Binding DataContext.ClearPageCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" VerticalAlignment="Center" Padding="0" ToolTip="清空页"> | |||||
<icon:PackIconModern ToolTip="清空页" Width="10" HorizontalAlignment="Center" Foreground="White" Kind="Clean" /> | |||||
</Button> | |||||
</StackPanel> | </StackPanel> | ||||
</Grid> | </Grid> | ||||
<ControlTemplate.Triggers> | <ControlTemplate.Triggers> | ||||
@@ -0,0 +1,51 @@ | |||||
<Window x:Class="BeDesignerSCADA.View.MyMessageBox" | |||||
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:local="clr-namespace:BeDesignerSCADA.View" | |||||
x:Name="frmMessageBox" | |||||
WindowState="Normal" | |||||
WindowStyle="None" | |||||
WindowStartupLocation="CenterScreen" | |||||
Title="提示" Height="150" Width="393"> | |||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="19"/> | |||||
<RowDefinition/> | |||||
</Grid.RowDefinitions> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="100"/> | |||||
<ColumnDefinition/> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid Grid.Row="0" Grid.ColumnSpan="2"> | |||||
<TextBlock Margin="10,0,0,0" FontSize="18" FontFamily="宋体" VerticalAlignment="Center" HorizontalAlignment="Left">提示</TextBlock> | |||||
<Image Margin="0,0,10,0" VerticalAlignment="Center" HorizontalAlignment="Right" Source="../Images/报错.png" Cursor="Hand" MouseLeftButtonDown="Image_MouseLeftButtonDown"></Image> | |||||
</Grid> | |||||
<Image Grid.Row="1" x:Name="picICO" Width="70" Height="70" HorizontalAlignment="Center" VerticalAlignment="Center" Source="../Images/bj.png" Stretch="Fill"></Image> | |||||
<Grid Grid.Column="1" Grid.Row="1" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="224*"/> | |||||
<ColumnDefinition Width="69*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="*"/> | |||||
<RowDefinition Height="50"/> | |||||
</Grid.RowDefinitions> | |||||
<Border Padding="10" Grid.ColumnSpan="2"> | |||||
<TextBlock x:Name="labInfo" Grid.Row="0" Text="确定要删除数据吗?" FontSize="18" FontFamily="宋体" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center"></TextBlock> | |||||
</Border> | |||||
<Grid Grid.Row="1" Grid.ColumnSpan="2"> | |||||
<StackPanel x:Name="panel2" Orientation="Horizontal"> | |||||
<Button x:Name="btnYes" Cursor="Hand" Width="110" Height="31" Content="是(Y)" HorizontalAlignment="Left" VerticalAlignment="Top" ></Button> | |||||
<Button x:Name="btnNo" Cursor="Hand" Width="110" Margin="30,0,0,0" Height="31" Content="否(N)" HorizontalAlignment="Left" VerticalAlignment="Top"></Button> | |||||
</StackPanel> | |||||
<StackPanel x:Name="panel1" Orientation="Horizontal" Visibility="Collapsed"> | |||||
<Button x:Name="btnOk" Cursor="Hand" Width="250" Height="31" Content="确定(O)" HorizontalAlignment="Left" VerticalAlignment="Top" ></Button> | |||||
</StackPanel> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
</Window> | |||||
@@ -0,0 +1,126 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Drawing; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
using System.Windows; | |||||
using System.Windows.Controls; | |||||
using System.Windows.Data; | |||||
using System.Windows.Documents; | |||||
using System.Windows.Forms; | |||||
using System.Windows.Input; | |||||
using System.Windows.Media; | |||||
using System.Windows.Media.Imaging; | |||||
using System.Windows.Shapes; | |||||
namespace BeDesignerSCADA.View | |||||
{ | |||||
/// <summary> | |||||
/// MyMessageBox.xaml 的交互逻辑 | |||||
/// </summary> | |||||
public partial class MyMessageBox : Window | |||||
{ | |||||
public MyMessageBox(MessageBoxStyle messageBoxStyle, string msg) | |||||
{ | |||||
InitializeComponent(); | |||||
this.Width = 393; | |||||
btnYes.Click += BtnYes_Click; | |||||
btnNo.Click += BtnNo_Click; | |||||
btnOk.Click += BtnOk_Click; | |||||
this.KeyDown += MyMessageBox_KeyDown; | |||||
if (messageBoxStyle == MessageBoxStyle.info) | |||||
{ | |||||
picICO.Source = new BitmapImage(new Uri("../Images/info.png", UriKind.Relative)); | |||||
//picICO.Image = global::myAlarmSystem.Properties.Resources.info; | |||||
this.Title = "提示"; | |||||
panel1.Visibility = Visibility.Visible; | |||||
panel2.Visibility = Visibility.Collapsed; | |||||
} | |||||
else if (messageBoxStyle == MessageBoxStyle.question) | |||||
{ | |||||
picICO.Source = new BitmapImage(new Uri("../Images/question.png", UriKind.Relative)); | |||||
//picICO.Image = global::myAlarmSystem.Properties.Resources.question; | |||||
this.Title = "询问"; | |||||
panel1.Visibility = Visibility.Collapsed; | |||||
panel2.Visibility = Visibility.Visible; | |||||
} | |||||
else if (messageBoxStyle == MessageBoxStyle.error) | |||||
{ | |||||
picICO.Source = new BitmapImage(new Uri("../Images/error.png", UriKind.Relative)); | |||||
//picICO.Image = global::myAlarmSystem.Properties.Resources.error; | |||||
this.Title = "错误"; | |||||
panel1.Visibility = Visibility.Visible; | |||||
panel2.Visibility = Visibility.Collapsed; | |||||
} | |||||
this.labInfo.Text = msg; | |||||
SizeF size = TextRenderer.MeasureText(msg, new Font("宋体", 15, System.Drawing.FontStyle.Regular)); | |||||
int TempWidth = (int)size.Width; | |||||
if (TempWidth <= 289) { return; } | |||||
this.Height = 150 + ((int)size.Width / 289) * 20; | |||||
//this.panel1.Width = TempWidth - 20; | |||||
//this.panel2.Width = TempWidth - 20; | |||||
//btnYes.Width = TempWidth / 2 - 20; | |||||
//btnNo.Width = TempWidth / 2 - 20; | |||||
} | |||||
private void MyMessageBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) | |||||
{ | |||||
if (e.KeyStates == Keyboard.GetKeyStates(Key.N)) | |||||
{ | |||||
BtnNo_Click(null, null); | |||||
} | |||||
else if (e.KeyStates == Keyboard.GetKeyStates(Key.Y)) | |||||
{ | |||||
BtnYes_Click(null, null); | |||||
} | |||||
else if (e.KeyStates == Keyboard.GetKeyStates(Key.O)) | |||||
{ | |||||
BtnOk_Click(null, null); | |||||
} | |||||
} | |||||
private void BtnOk_Click(object sender, RoutedEventArgs e) | |||||
{ | |||||
this.DialogResult = true; | |||||
} | |||||
private void BtnNo_Click(object sender, RoutedEventArgs e) | |||||
{ | |||||
this.DialogResult = false; | |||||
} | |||||
private void BtnYes_Click(object sender, RoutedEventArgs e) | |||||
{ | |||||
this.DialogResult = true; | |||||
} | |||||
private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) | |||||
{ | |||||
this.Close(); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 消息样式类型 | |||||
/// </summary> | |||||
public enum MessageBoxStyle | |||||
{ | |||||
/// <summary> | |||||
/// 通知 | |||||
/// </summary> | |||||
info = 0, | |||||
/// <summary> | |||||
/// 选择 | |||||
/// </summary> | |||||
question = 1, | |||||
/// <summary> | |||||
/// 错误 | |||||
/// </summary> | |||||
error = 2 | |||||
}; | |||||
} |
@@ -426,6 +426,10 @@ namespace BeDesignerSCADA.ViewModel | |||||
/// </summary> | /// </summary> | ||||
public RelayCommand<object> DeletePageCommand { get; set; } | public RelayCommand<object> DeletePageCommand { get; set; } | ||||
/// <summary> | /// <summary> | ||||
/// 清除当前页子集 | |||||
/// </summary> | |||||
public RelayCommand<object> ClearPageCommand { get; set; } | |||||
/// <summary> | |||||
/// 选中该页 | /// 选中该页 | ||||
/// </summary> | /// </summary> | ||||
public RelayCommand<object> SelectPageCommand { get; set; } | public RelayCommand<object> SelectPageCommand { get; set; } | ||||
@@ -455,6 +459,7 @@ namespace BeDesignerSCADA.ViewModel | |||||
SetBottomPageCommand = new RelayCommand(new Action(SetBottomPageHeader)); | SetBottomPageCommand = new RelayCommand(new Action(SetBottomPageHeader)); | ||||
AddPageCommand = new RelayCommand<object>(new Action<object?>(AddPageHeader)); | AddPageCommand = new RelayCommand<object>(new Action<object?>(AddPageHeader)); | ||||
DeletePageCommand = new RelayCommand<object>(new Action<object?>(DeletePageHeader)); | DeletePageCommand = new RelayCommand<object>(new Action<object?>(DeletePageHeader)); | ||||
ClearPageCommand = new RelayCommand<object>(new Action<object?>(ClearPageHeader)); | |||||
SelectPageCommand = new RelayCommand<object>(new Action<object?>(SelectPageHeader)); | SelectPageCommand = new RelayCommand<object>(new Action<object?>(SelectPageHeader)); | ||||
SaveAllPageCommand = new RelayCommand(new Action(SaveAllPageHeader)); | SaveAllPageCommand = new RelayCommand(new Action(SaveAllPageHeader)); | ||||
LWSaveAllPageCommand=new RelayCommand(new Action(LWSaveAllPageHeader)); | LWSaveAllPageCommand=new RelayCommand(new Action(LWSaveAllPageHeader)); | ||||
@@ -555,7 +560,6 @@ namespace BeDesignerSCADA.ViewModel | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
if (obj != null && obj is PageModel mode) | if (obj != null && obj is PageModel mode) | ||||
{ | { | ||||
if (mode.Sort >= 0 && mode.Sort + 1 < MenuModel.pageModels.Count) | if (mode.Sort >= 0 && mode.Sort + 1 < MenuModel.pageModels.Count) | ||||
@@ -579,13 +583,54 @@ namespace BeDesignerSCADA.ViewModel | |||||
/// 删除该页 | /// 删除该页 | ||||
/// </summary> | /// </summary> | ||||
public void DeletePageHeader(object obj) | public void DeletePageHeader(object obj) | ||||
{ | |||||
try | |||||
{ | |||||
if (obj != null && obj is PageModel page && MenuModel.pageModels.Count > 1) | |||||
{ | |||||
if (new MyMessageBox(MessageBoxStyle.question, $"当前选中页面名称:{page.Name},确认是否删除!").ShowDialog() == true) | |||||
{ | |||||
if (MenuModel.SelectPageModels == page) | |||||
{ | |||||
MenuModel.pageModels.Remove(page); | |||||
GxSortTarget(); | |||||
SelectPageHeader(MenuModel.pageModels[0]); | |||||
} | |||||
else | |||||
{ | |||||
MenuModel.pageModels.Remove(page); | |||||
GxSortTarget(); | |||||
} | |||||
} | |||||
} | |||||
else if (obj != null)//最后一页 | |||||
{ | |||||
if (new MyMessageBox(MessageBoxStyle.question, "至少保留一页,是否清空该页!").ShowDialog() == true) | |||||
{ | |||||
(obj as PageModel).visual.Children.Clear(); | |||||
SelectPageHeader(MenuModel.pageModels[0]); | |||||
} | |||||
} | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 清空该页 | |||||
/// </summary> | |||||
/// <param name="obj"></param> | |||||
public void ClearPageHeader(object obj) | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
if (obj != null && obj is PageModel page) | if (obj != null && obj is PageModel page) | ||||
{ | { | ||||
MenuModel.pageModels.Remove(page); | |||||
GxSortTarget(); | |||||
if (new MyMessageBox(MessageBoxStyle.question, $"页面名称:{page.Name},是否清空该页!").ShowDialog() == true) | |||||
{ | |||||
(obj as PageModel).visual.Children.Clear(); | |||||
} | |||||
} | } | ||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
@@ -674,11 +719,11 @@ namespace BeDesignerSCADA.ViewModel | |||||
try | try | ||||
{ | { | ||||
BinaryFile.SaveBinary(MenuModel, path); | BinaryFile.SaveBinary(MenuModel, path); | ||||
MessageBox.Show("保存成功!"); | |||||
new MyMessageBox(MessageBoxStyle.info, $"保存成功!").ShowDialog(); | |||||
} | } | ||||
catch (Exception ex) | catch (Exception ex) | ||||
{ | { | ||||
MessageBox.Show("保存失败!原因:" +ex.Message); | |||||
new MyMessageBox(MessageBoxStyle.error, "保存失败!原因:" + ex.Message).ShowDialog(); | |||||
} | } | ||||
} | } | ||||
/// <summary> | /// <summary> | ||||