主界面添加了一些基础菜单,并未关联事件
This commit is contained in:
@@ -2,11 +2,120 @@
|
||||
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:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:软件系统客户端Wpf"
|
||||
mc:Ignorable="d"
|
||||
Title="MainWindow" Height="350" Width="525" WindowState="Maximized">
|
||||
<Grid>
|
||||
|
||||
<Window.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml" />
|
||||
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.CheckBox.xaml" />
|
||||
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml" />
|
||||
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.PopupBox.xaml" />
|
||||
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.RadioButton.xaml" />
|
||||
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.TextBlock.xaml" />
|
||||
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToggleButton.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
<Style TargetType="TextBlock" BasedOn="{StaticResource MaterialDesignCaptionTextBlock}" x:Key="Caption">
|
||||
<Setter Property="Opacity" Value=".68"></Setter>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</Window.Resources>
|
||||
<Grid>
|
||||
<DockPanel>
|
||||
<Menu IsMainMenu="True" DockPanel.Dock="Top">
|
||||
<MenuItem Header="_管理员">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="AccountSettingsVariant" />
|
||||
</MenuItem.Icon>
|
||||
<MenuItem Header="公告更改">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="BorderColor" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="账户管理">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="AccountCircle" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="注册账户">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="AccountPlus" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
|
||||
<Separator />
|
||||
<MenuItem Header="日志查看">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="FlagVariant" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="远程更新">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="Rotate3d" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="消息发送">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="MessageTextOutline" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="开发中心">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="Security" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</MenuItem>
|
||||
<MenuItem Header="_设置">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="Settings" />
|
||||
</MenuItem.Icon>
|
||||
<MenuItem Header="密码更改">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="KeyChange" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="聊天信息">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="MessageOutline" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="头像更改">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="AccountConvert" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
|
||||
</MenuItem>
|
||||
<MenuItem Header="_关于">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="CubeOutline" />
|
||||
</MenuItem.Icon>
|
||||
<MenuItem Header="关于本软件">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="Leaf" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="更新日志">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="BookOpen" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="版本号说明">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="InformationOutline" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="意见反馈">
|
||||
<MenuItem.Icon>
|
||||
<materialDesign:PackIcon Kind="Bridge" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</DockPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
using System;
|
||||
using CommonLibrary;
|
||||
using HslCommunication.BasicFramework;
|
||||
using HslCommunication.Enthernet;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@@ -53,5 +57,152 @@ namespace 软件系统客户端Wpf
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#region 异步网络块
|
||||
|
||||
private Net_Socket_Client net_socket_client = new Net_Socket_Client();
|
||||
|
||||
private void Net_Socket_Client_Initialization()
|
||||
{
|
||||
try
|
||||
{
|
||||
net_socket_client.KeyToken = CommonHeadCode.KeyToken;//新增的身份令牌
|
||||
net_socket_client.EndPointServer = new System.Net.IPEndPoint(
|
||||
System.Net.IPAddress.Parse(UserClient.ServerIp),
|
||||
CommonLibrary.CommonLibrary.Port_Main_Net);
|
||||
net_socket_client.ClientAlias = $"{UserClient.UserAccount.UserName} ({UserClient.UserAccount.Factory})";//标记客户端在线的名称
|
||||
net_socket_client.ClientStart();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
SoftBasic.ShowExceptionMessage(ex);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 接收到服务器的字节数据的回调方法
|
||||
/// </summary>
|
||||
/// <param name="state">网络连接对象</param>
|
||||
/// <param name="customer">用户自定义的指令头,用来区分数据用途</param>
|
||||
/// <param name="data">数据</param>
|
||||
private void Net_socket_client_AcceptString(AsyncStateOne state, int customer, string data)
|
||||
{
|
||||
if (customer == CommonHeadCode.MultiNetHeadCode.弹窗新消息)
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
FormPopup fpp = new FormPopup(data, System.Drawing.Color.DodgerBlue, 10000);
|
||||
fpp.Show();
|
||||
}));
|
||||
}
|
||||
else if (customer == CommonHeadCode.MultiNetHeadCode.总在线信息)
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
//listBox1.DataSource = data.Split('#');
|
||||
}));
|
||||
}
|
||||
else if (customer == CommonHeadCode.MultiNetHeadCode.关闭客户端)
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
Close();
|
||||
}));
|
||||
}
|
||||
else if (customer == CommonHeadCode.SimplifyHeadCode.更新公告)
|
||||
{
|
||||
//此处应用到了同步类的指令头
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
UserClient.Announcement = data;
|
||||
//label_Announcement.Text = data;
|
||||
FormPopup fpp = new FormPopup(data, System.Drawing.Color.DodgerBlue, 10000);
|
||||
fpp.Show();
|
||||
}));
|
||||
}
|
||||
else if (customer == CommonHeadCode.MultiNetHeadCode.初始化数据)
|
||||
{
|
||||
//收到服务器的数据
|
||||
JObject json = JObject.Parse(data);
|
||||
UserClient.DateTimeServer = json["Time"].ToObject<DateTime>();
|
||||
List<string> chats = JArray.Parse(json["chats"].ToString()).ToObject<List<string>>();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
chats.ForEach(m => { sb.Append(m + Environment.NewLine); });
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
//toolStripStatusLabel_time.Text = UserClient.DateTimeServer.ToString("yyyy-MM-dd HH:mm");
|
||||
//label_file_count.Text = json["FileCount"].ToObject<int>().ToString();
|
||||
//UIControls_Chat.AddChatsHistory(sb.ToString());
|
||||
}));
|
||||
}
|
||||
else if (customer == CommonHeadCode.MultiNetHeadCode.文件总数量)
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
//label_file_count.Text = data;
|
||||
}));
|
||||
}
|
||||
else if (customer == CommonHeadCode.MultiNetHeadCode.留言版消息)
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
//UIControls_Chat?.DealwithReceive(data);
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
private void Net_socket_client_AcceptByte(AsyncStateOne object1, int customer, byte[] object2)
|
||||
{
|
||||
//接收到服务器发来的字节数据
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
MessageBox.Show(customer.ToString());
|
||||
}));
|
||||
}
|
||||
|
||||
private void Net_socket_client_LoginSuccess()
|
||||
{
|
||||
//登录成功,或重新登录成功的事件,有些数据的初始化可以放在此处
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
//toolStripStatusLabel_status.Text = "客户端启动成功";
|
||||
}));
|
||||
}
|
||||
|
||||
private void Net_socket_client_LoginFailed(int object1)
|
||||
{
|
||||
//登录失败的情况,如果连续三次连接失败,请考虑退出系统
|
||||
if (object1 > 3)
|
||||
{
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
Close();
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
private void Net_socket_client_MessageAlerts(string object1)
|
||||
{
|
||||
//信息提示
|
||||
Dispatcher.Invoke(new Action(() =>
|
||||
{
|
||||
//toolStripStatusLabel_status.Text = object1;
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
@@ -50,6 +50,8 @@
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Core" />
|
||||
|
||||
Reference in New Issue
Block a user