提交 6d79df35 编写于 作者: Richard__Hu's avatar Richard__Hu

主界面添加了一些基础菜单,并未关联事件

上级 ca18a027
......@@ -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">
<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>
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
}
}
......@@ -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" />
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册