@@ -0,0 +1,24 @@ | |||||
<Project Sdk="Microsoft.NET.Sdk"> | |||||
<PropertyGroup> | |||||
<TargetFramework>net6.0-windows</TargetFramework> | |||||
<Nullable>enable</Nullable> | |||||
<UseWPF>true</UseWPF> | |||||
</PropertyGroup> | |||||
<ItemGroup> | |||||
<None Remove="Image\方形背景2.png" /> | |||||
<None Remove="Image\方形背景3.png" /> | |||||
<None Remove="Image\背景边框\方形背景3.png" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<Resource Include="Image\方形背景2.png" /> | |||||
<Resource Include="Image\方形背景3.png" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<Folder Include="Image\背景边框\" /> | |||||
</ItemGroup> | |||||
</Project> |
@@ -4,7 +4,7 @@ using System.Linq; | |||||
using System.Text; | using System.Text; | ||||
using System.Threading.Tasks; | using System.Threading.Tasks; | ||||
namespace BPASmart.Model.用户 | |||||
namespace BPASmart.Model | |||||
{ | { | ||||
public enum UserPower | public enum UserPower | ||||
{ | { | ||||
@@ -0,0 +1,176 @@ | |||||
<UserControl x:Class="BPASmart.RecipeManagement.MainControl" | |||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |||||
xmlns:local="clr-namespace:BPASmart.RecipeManagement" | |||||
xmlns:view="clr-namespace:BPASmart.RecipeManagement.View" | |||||
xmlns:vm="clr-namespace:BPASmart.RecipeManagement.ViewModel" | |||||
mc:Ignorable="d" | |||||
d:DesignHeight="800" d:DesignWidth="1400"> | |||||
<UserControl.DataContext> | |||||
<vm:MainControl/> | |||||
</UserControl.DataContext> | |||||
<UserControl.Resources> | |||||
<Style x:Key="RadioNavigation" TargetType="RadioButton"> | |||||
<Setter Property="Margin" Value="-4,0"/> | |||||
<Setter Property="Background" Value="Transparent"/> | |||||
<Setter Property="GroupName" Value="Navigation"/> | |||||
<Setter Property="VerticalAlignment" Value="Center"/> | |||||
<Setter Property="HorizontalAlignment" Value="Center"/> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="RadioButton"> | |||||
<Border x:Name="_borderOver" Background="Transparent" Width="200" BorderBrush="Transparent" BorderThickness="0,1"> | |||||
<Grid Background="{TemplateBinding Background}" Margin="{TemplateBinding Margin}"> | |||||
<TextBlock Foreground="White" Text="{TemplateBinding Content}" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center"/> | |||||
</Grid> | |||||
</Border> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Setter Property="BorderBrush" TargetName="_borderOver" Value="#1971B6"/> | |||||
<Setter Property="Background" TargetName="_borderOver"> | |||||
<Setter.Value> | |||||
<LinearGradientBrush StartPoint="0,1" EndPoint="1,1"> | |||||
<GradientStop Color="#104E8B" Offset="0"/> | |||||
<GradientStop Color="#1874CD" Offset="0.4"/> | |||||
<GradientStop Color="#1874CD" Offset="0.6"/> | |||||
<GradientStop Color="#27408B" Offset="1"/> | |||||
</LinearGradientBrush> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
<Trigger Property="IsChecked" Value="True"> | |||||
<Setter Property="Background" TargetName="_borderOver" > | |||||
<Setter.Value> | |||||
<ImageBrush ImageSource="../Image/leftImage.png"/> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
<ControlTemplate x:Key="butonTempalte" TargetType="RadioButton"> | |||||
<Border x:Name="_borderOver" Background="Transparent" Width="200" Height="60" BorderBrush="Transparent" BorderThickness="0,1"> | |||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" /> | |||||
</Border> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Setter Property="BorderBrush" TargetName="_borderOver" Value="#1971B6"/> | |||||
<Setter Property="Background" TargetName="_borderOver"> | |||||
<Setter.Value> | |||||
<LinearGradientBrush StartPoint="0,1" EndPoint="1,1"> | |||||
<GradientStop Color="#104E8B" Offset="0"/> | |||||
<GradientStop Color="#1874CD" Offset="0.4"/> | |||||
<GradientStop Color="#1874CD" Offset="0.6"/> | |||||
<GradientStop Color="#27408B" Offset="1"/> | |||||
</LinearGradientBrush> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
<Trigger Property="IsChecked" Value="True"> | |||||
<Setter Property="Background" TargetName="_borderOver" > | |||||
<Setter.Value> | |||||
<ImageBrush ImageSource="../Image/leftImage.png"/> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
<Style x:Key="fonticon" TargetType="{x:Type TextBlock}"> | |||||
<Setter Property="FontFamily" Value="pack://application:,,,/Font/#iconfont"/> | |||||
<Setter Property="FontSize" Value="24"/> | |||||
<Setter Property="Foreground" Value="White"/> | |||||
<Setter Property="HorizontalAlignment" Value="Center"/> | |||||
<Setter Property="VerticalAlignment" Value="Center"/> | |||||
<Setter Property="Margin" Value="0,0,20,0"/> | |||||
</Style> | |||||
</UserControl.Resources> | |||||
<Grid> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="*"/> | |||||
<ColumnDefinition Width="6*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<Border Grid.Row="1" Grid.RowSpan="2" BorderBrush="#1E90FF" BorderThickness="0,0,2,0"> | |||||
<Border.Background> | |||||
<LinearGradientBrush StartPoint="0,1" EndPoint="1,1"> | |||||
<GradientStop Color="#01003B" Offset="0.2"/> | |||||
<GradientStop Color="#010050" Offset="1"/> | |||||
</LinearGradientBrush> | |||||
</Border.Background> | |||||
</Border> | |||||
<StackPanel x:Name="mylistview" Background="Transparent" Grid.RowSpan="1" Grid.Row="1" | |||||
ScrollViewer.VerticalScrollBarVisibility="Hidden" ScrollViewer.HorizontalScrollBarVisibility="Hidden" | |||||
MouseLeftButtonDown="mylistview_MouseDown" > | |||||
<RadioButton Style="{DynamicResource RadioNavigation}" IsChecked="True" Template="{DynamicResource butonTempalte }" | |||||
Click="NavButton_Click" Tag="OrderManager"> | |||||
<Grid Background="Transparent" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="auto"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="" Style="{DynamicResource fonticon}"/> | |||||
<TextBlock Grid.Column="1" Foreground="White" Text="订单管理" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="楷体"/> | |||||
</Grid> | |||||
</RadioButton> | |||||
<RadioButton Style="{DynamicResource RadioNavigation}" Template="{DynamicResource butonTempalte }" | |||||
Click="NavButton_Click" Tag="RecipeManager"> | |||||
<Grid Background="Transparent" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="auto"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="" Style="{DynamicResource fonticon}"/> | |||||
<TextBlock Grid.Column="1" Foreground="White" Text="配方管理" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="楷体"/> | |||||
</Grid> | |||||
</RadioButton> | |||||
<RadioButton Style="{DynamicResource RadioNavigation}" Template="{DynamicResource butonTempalte }" | |||||
Click="NavButton_Click" Tag="MaterialManager"> | |||||
<Grid Background="Transparent" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="auto"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="" Style="{DynamicResource fonticon}"/> | |||||
<TextBlock Grid.Column="1" Foreground="White" Text="原料管理" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="楷体"/> | |||||
</Grid> | |||||
</RadioButton> | |||||
<RadioButton Style="{DynamicResource RadioNavigation}" Template="{DynamicResource butonTempalte }" | |||||
Click="NavButton_Click" Tag="PowerManager"> | |||||
<Grid Background="Transparent" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="auto"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="" Style="{DynamicResource fonticon}"/> | |||||
<TextBlock Grid.Column="1" Foreground="White" Text="权限分配" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="楷体"/> | |||||
</Grid> | |||||
</RadioButton> | |||||
</StackPanel> | |||||
<ContentControl x:Name="contentRegion" Grid.Column="1" Grid.Row="1" Background="#01003B" BorderBrush="Transparent"> | |||||
<view:OrderManager/> | |||||
</ContentControl> | |||||
</Grid> | |||||
</UserControl> |
@@ -0,0 +1,51 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Reflection; | |||||
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.Input; | |||||
using System.Windows.Media; | |||||
using System.Windows.Media.Imaging; | |||||
using System.Windows.Navigation; | |||||
using System.Windows.Shapes; | |||||
namespace BPASmart.RecipeManagement | |||||
{ | |||||
/// <summary> | |||||
/// MainControl.xaml 的交互逻辑 | |||||
/// </summary> | |||||
public partial class MainControl : UserControl | |||||
{ | |||||
public MainControl() | |||||
{ | |||||
InitializeComponent(); | |||||
} | |||||
private void mylistview_MouseDown(object sender, MouseButtonEventArgs e) | |||||
{ | |||||
} | |||||
private void NavButton_Click(object sender, RoutedEventArgs e) | |||||
{ | |||||
try | |||||
{ | |||||
if (sender is RadioButton bt) | |||||
{ | |||||
Type type = Type.GetType($"BPASmart.RecipeManagement.View.{bt.Tag?.ToString()}"); | |||||
ConstructorInfo cti = type.GetConstructor(System.Type.EmptyTypes); | |||||
contentRegion.Content = (FrameworkElement)cti.Invoke(null); | |||||
} | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -12,88 +12,9 @@ | |||||
<vm:MainWindowViewModel/> | <vm:MainWindowViewModel/> | ||||
</Window.DataContext> | </Window.DataContext> | ||||
<Window.Resources> | <Window.Resources> | ||||
<Style x:Key="fonticon" TargetType="{x:Type TextBlock}"> | |||||
<Setter Property="FontFamily" Value="pack://application:,,,/Font/#iconfont"/> | |||||
<Setter Property="FontSize" Value="24"/> | |||||
<Setter Property="Foreground" Value="White"/> | |||||
<Setter Property="HorizontalAlignment" Value="Center"/> | |||||
<Setter Property="VerticalAlignment" Value="Center"/> | |||||
<Setter Property="Margin" Value="0,0,20,0"/> | |||||
</Style> | |||||
<Style x:Key="RadioNavigation" TargetType="RadioButton"> | |||||
<Setter Property="Margin" Value="-4,0"/> | |||||
<Setter Property="Background" Value="Transparent"/> | |||||
<Setter Property="GroupName" Value="Navigation"/> | |||||
<Setter Property="VerticalAlignment" Value="Center"/> | |||||
<Setter Property="HorizontalAlignment" Value="Center"/> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="RadioButton"> | |||||
<Border x:Name="_borderOver" Background="Transparent" Width="200" BorderBrush="Transparent" BorderThickness="0,1"> | |||||
<Grid Background="{TemplateBinding Background}" Margin="{TemplateBinding Margin}"> | |||||
<TextBlock Foreground="White" Text="{TemplateBinding Content}" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center"/> | |||||
</Grid> | |||||
</Border> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Setter Property="BorderBrush" TargetName="_borderOver" Value="#1971B6"/> | |||||
<Setter Property="Background" TargetName="_borderOver"> | |||||
<Setter.Value> | |||||
<LinearGradientBrush StartPoint="0,1" EndPoint="1,1"> | |||||
<GradientStop Color="#104E8B" Offset="0"/> | |||||
<GradientStop Color="#1874CD" Offset="0.4"/> | |||||
<GradientStop Color="#1874CD" Offset="0.6"/> | |||||
<GradientStop Color="#27408B" Offset="1"/> | |||||
</LinearGradientBrush> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
<Trigger Property="IsChecked" Value="True"> | |||||
<Setter Property="Background" TargetName="_borderOver" > | |||||
<Setter.Value> | |||||
<ImageBrush ImageSource="../Image/leftImage.png"/> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
<ControlTemplate x:Key="butonTempalte" TargetType="RadioButton"> | |||||
<Border x:Name="_borderOver" Background="Transparent" Width="200" Height="60" BorderBrush="Transparent" BorderThickness="0,1"> | |||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" /> | |||||
</Border> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Setter Property="BorderBrush" TargetName="_borderOver" Value="#1971B6"/> | |||||
<Setter Property="Background" TargetName="_borderOver"> | |||||
<Setter.Value> | |||||
<LinearGradientBrush StartPoint="0,1" EndPoint="1,1"> | |||||
<GradientStop Color="#104E8B" Offset="0"/> | |||||
<GradientStop Color="#1874CD" Offset="0.4"/> | |||||
<GradientStop Color="#1874CD" Offset="0.6"/> | |||||
<GradientStop Color="#27408B" Offset="1"/> | |||||
</LinearGradientBrush> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
<Trigger Property="IsChecked" Value="True"> | |||||
<Setter Property="Background" TargetName="_borderOver" > | |||||
<Setter.Value> | |||||
<ImageBrush ImageSource="../Image/leftImage.png"/> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Window.Resources> | </Window.Resources> | ||||
<Grid > | <Grid > | ||||
<Grid.ColumnDefinitions> | <Grid.ColumnDefinitions> | ||||
@@ -150,91 +71,10 @@ | |||||
</Style> | </Style> | ||||
</Button.Style> | </Button.Style> | ||||
</Button> | </Button> | ||||
<Grid Grid.Row="1" Grid.ColumnSpan="2"> | |||||
<local:MainControl/> | |||||
</Grid> | |||||
<Border Grid.Row="1" Grid.RowSpan="2" BorderBrush="#1E90FF" BorderThickness="0,0,2,0"> | |||||
<Border.Background> | |||||
<LinearGradientBrush StartPoint="0,1" EndPoint="1,1"> | |||||
<GradientStop Color="#01003B" Offset="0.2"/> | |||||
<GradientStop Color="#010050" Offset="1"/> | |||||
</LinearGradientBrush> | |||||
</Border.Background> | |||||
</Border> | |||||
<StackPanel x:Name="mylistview" Background="Transparent" Grid.RowSpan="1" Grid.Row="1" | |||||
ScrollViewer.VerticalScrollBarVisibility="Hidden" ScrollViewer.HorizontalScrollBarVisibility="Hidden" | |||||
MouseLeftButtonDown="mylistview_MouseDown" > | |||||
<RadioButton Style="{DynamicResource RadioNavigation}" IsChecked="True" Template="{DynamicResource butonTempalte }" | |||||
Click="NavButton_Click" Tag="OrderManager"> | |||||
<Grid Background="Transparent" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="auto"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="" Style="{DynamicResource fonticon}"/> | |||||
<TextBlock Grid.Column="1" Foreground="White" Text="订单管理" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="楷体"/> | |||||
</Grid> | |||||
</RadioButton> | |||||
<RadioButton Style="{DynamicResource RadioNavigation}" Template="{DynamicResource butonTempalte }" | |||||
Click="NavButton_Click" Tag="RecipeManager"> | |||||
<Grid Background="Transparent" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="auto"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="" Style="{DynamicResource fonticon}"/> | |||||
<TextBlock Grid.Column="1" Foreground="White" Text="配方管理" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="楷体"/> | |||||
</Grid> | |||||
</RadioButton> | |||||
<RadioButton Style="{DynamicResource RadioNavigation}" Template="{DynamicResource butonTempalte }" | |||||
Click="NavButton_Click" Tag="MaterialManager"> | |||||
<Grid Background="Transparent" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="auto"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="" Style="{DynamicResource fonticon}"/> | |||||
<TextBlock Grid.Column="1" Foreground="White" Text="原料管理" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="楷体"/> | |||||
</Grid> | |||||
</RadioButton> | |||||
<!--<RadioButton Style="{DynamicResource RadioNavigation}" Template="{DynamicResource butonTempalte }" | |||||
Click="NavButton_Click" Tag="TechnologySetting"> | |||||
<Grid Background="Transparent" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="auto"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="" Style="{DynamicResource fonticon}"/> | |||||
<TextBlock Grid.Column="1" Foreground="White" Text="工艺参数" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="楷体"/> | |||||
</Grid> | |||||
</RadioButton>--> | |||||
<RadioButton Style="{DynamicResource RadioNavigation}" Template="{DynamicResource butonTempalte }" | |||||
Click="NavButton_Click" Tag="PowerManager"> | |||||
<Grid Background="Transparent" > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="auto"/> | |||||
<ColumnDefinition Width="*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<TextBlock Text="" Style="{DynamicResource fonticon}"/> | |||||
<TextBlock Grid.Column="1" Foreground="White" Text="权限分配" FontSize="24" Background="Transparent" | |||||
VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="楷体"/> | |||||
</Grid> | |||||
</RadioButton> | |||||
</StackPanel> | |||||
<ContentControl x:Name="contentRegion" Grid.Column="1" Grid.Row="1" Background="#01003B" BorderBrush="Transparent"> | |||||
<view:OrderManager/> | |||||
</ContentControl> | |||||
</Grid> | </Grid> | ||||
</Window> | </Window> |
@@ -38,10 +38,6 @@ namespace BPASmart.RecipeManagement | |||||
} | } | ||||
private void mylistview_MouseDown(object sender, MouseButtonEventArgs e) | |||||
{ | |||||
this.DragMove(); | |||||
} | |||||
private void Button_Click(object sender, RoutedEventArgs e) | private void Button_Click(object sender, RoutedEventArgs e) | ||||
{ | { | ||||
@@ -49,22 +45,7 @@ namespace BPASmart.RecipeManagement | |||||
} | } | ||||
private void NavButton_Click(object sender, RoutedEventArgs e) | |||||
{ | |||||
try | |||||
{ | |||||
if (sender is RadioButton bt) | |||||
{ | |||||
Type type = Type.GetType($"BPASmart.RecipeManagement.View.{bt.Tag?.ToString()}"); | |||||
ConstructorInfo cti = type.GetConstructor(System.Type.EmptyTypes); | |||||
contentRegion.Content = (FrameworkElement)cti.Invoke(null); | |||||
} | |||||
} | |||||
catch (Exception ex) | |||||
{ | |||||
} | |||||
} | |||||
private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) | private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) | ||||
{ | { | ||||
@@ -117,9 +117,12 @@ | |||||
</Grid> | </Grid> | ||||
</ScrollViewer> | </ScrollViewer> | ||||
<Button Grid.Row="4" Content="配方工艺" Style="{DynamicResource ButtonStyle}" | |||||
Height="20" Width="80" HorizontalAlignment="Right" VerticalAlignment="Top" | |||||
<Button Grid.Row="4" Content="配方下发" Style="{DynamicResource GreenButton}" BorderBrush="Green" BorderThickness="1" | |||||
Height="20" Width="70" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,0,5,0" | |||||
Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor},Path=DataContext.PecipeStartCommand}" | |||||
CommandParameter="{Binding ID}"/> | |||||
<Button Grid.Row="4" Content="配方工艺" Style="{DynamicResource ButtonStyle}" | |||||
Height="20" Width="70" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="5,0,0,0" | |||||
Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor},Path=DataContext.PecipeSettingCommand}" | Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor},Path=DataContext.PecipeSettingCommand}" | ||||
CommandParameter="{Binding ID}"/> | CommandParameter="{Binding ID}"/> | ||||
</Grid> | </Grid> | ||||
@@ -0,0 +1,20 @@ | |||||
using BPASmart.Model; | |||||
using BPASmartClient.Helper; | |||||
using Microsoft.Toolkit.Mvvm.ComponentModel; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
namespace BPASmart.RecipeManagement.ViewModel | |||||
{ | |||||
public class MainControl:ObservableObject | |||||
{ | |||||
public MainControl() | |||||
{ | |||||
Json<LocalMaterails>.Read(); | |||||
Json<LocalRecipes>.Read(); | |||||
} | |||||
} | |||||
} |
@@ -14,8 +14,7 @@ namespace BPASmart.RecipeManagement.ViewModel | |||||
public MainWindowViewModel() | public MainWindowViewModel() | ||||
{ | { | ||||
Json<LocalMaterails>.Read(); | |||||
Json<LocalRecipes>.Read(); | |||||
} | } | ||||
} | } | ||||
@@ -16,12 +16,22 @@ namespace BPASmart.RecipeManagement.ViewModel | |||||
public class RecipeManagerViewModel : ObservableObject | public class RecipeManagerViewModel : ObservableObject | ||||
{ | { | ||||
public ObservableCollection<Recipes> RecipeList { get; set; } = Json<LocalRecipes>.Data.locaRecipes; | public ObservableCollection<Recipes> RecipeList { get; set; } = Json<LocalRecipes>.Data.locaRecipes; | ||||
/// <summary> | |||||
/// 创建配方 | |||||
/// </summary> | |||||
public RelayCommand CreateRecipeCommand { get; set; } | public RelayCommand CreateRecipeCommand { get; set; } | ||||
public RelayCommand<object> EditRecipeCommand { get; set; } | public RelayCommand<object> EditRecipeCommand { get; set; } | ||||
public RelayCommand<object> DeleteRecipeCommand { get; set; } | public RelayCommand<object> DeleteRecipeCommand { get; set; } | ||||
/// <summary> | |||||
/// 配方工艺 | |||||
/// </summary> | |||||
public RelayCommand<object> PecipeSettingCommand { get; set; } | public RelayCommand<object> PecipeSettingCommand { get; set; } | ||||
/// <summary> | |||||
/// 配方下发 | |||||
/// </summary> | |||||
public RelayCommand<object> PecipeStartCommand { get; set; } | |||||
private void EditRecipe(object o) | private void EditRecipe(object o) | ||||
{ | { | ||||
@@ -62,6 +72,21 @@ namespace BPASmart.RecipeManagement.ViewModel | |||||
} | } | ||||
} | } | ||||
private void PecipeStart(object o) | |||||
{ | |||||
if (o == null) return; | |||||
if (o is string id) | |||||
{ | |||||
var res = Json<LocalRecipes>.Data.locaRecipes.FirstOrDefault(p => p.ID == id); | |||||
if (res != null) | |||||
{ | |||||
//下发配方 | |||||
} | |||||
} | |||||
} | |||||
public RecipeManagerViewModel() | public RecipeManagerViewModel() | ||||
{ | { | ||||
CreateRecipeCommand = new RelayCommand(() => | CreateRecipeCommand = new RelayCommand(() => | ||||
@@ -77,6 +102,8 @@ namespace BPASmart.RecipeManagement.ViewModel | |||||
PecipeSettingCommand = new RelayCommand<object>(PecipeSetting); | PecipeSettingCommand = new RelayCommand<object>(PecipeSetting); | ||||
PecipeStartCommand = new RelayCommand<object>(PecipeStart); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -6,17 +6,23 @@ | |||||
<Application.Resources> | <Application.Resources> | ||||
<SolidColorBrush x:Key="commanTextblock" Color="#FF2AB2E7"/> | <SolidColorBrush x:Key="commanTextblock" Color="#FF2AB2E7"/> | ||||
<SolidColorBrush x:Key="selectedColor" Color=" #4169E1"/> | <SolidColorBrush x:Key="selectedColor" Color=" #4169E1"/> | ||||
<SolidColorBrush x:Key="ScrollBarDisabledBackground" Color="#F4F4F4"/> | |||||
<!--#region ScrollViewer--> | <!--#region ScrollViewer--> | ||||
<Style x:Key="ScrollBarThumb" TargetType="{x:Type Thumb}"> | <Style x:Key="ScrollBarThumb" TargetType="{x:Type Thumb}"> | ||||
<Setter Property="SnapsToDevicePixels" Value="True" /> | |||||
<Setter Property="OverridesDefaultStyle" Value="true" /> | |||||
<Setter Property="IsTabStop" Value="false" /> | |||||
<Setter Property="Focusable" Value="false" /> | |||||
<Setter Property="OverridesDefaultStyle" Value="true"/> | |||||
<Setter Property="IsTabStop" Value="false"/> | |||||
<Setter Property="Template"> | <Setter Property="Template"> | ||||
<Setter.Value> | <Setter.Value> | ||||
<ControlTemplate TargetType="{x:Type Thumb}"> | <ControlTemplate TargetType="{x:Type Thumb}"> | ||||
<Border CornerRadius="2" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" /> | |||||
<!--滚动条颜色和圆角设置--> | |||||
<Rectangle Name="thumbRect" Fill="#03ffea" RadiusX="3" RadiusY="3"/> | |||||
<!--鼠标拉动滚动条时的颜色--> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Setter Property="Fill" Value="CornflowerBlue" TargetName="thumbRect" /> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | </ControlTemplate> | ||||
</Setter.Value> | </Setter.Value> | ||||
</Setter> | </Setter> | ||||
@@ -69,7 +75,40 @@ | |||||
<ScrollBar x:Name="PART_HorizontalScrollBar" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/> | <ScrollBar x:Name="PART_HorizontalScrollBar" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/> | ||||
</Grid> | </Grid> | ||||
</ControlTemplate> | </ControlTemplate> | ||||
<ControlTemplate x:Key="MyScrollViewer" TargetType="{x:Type ScrollViewer}"> | |||||
<!--View区域背景色--> | |||||
<Grid x:Name="Grid" Background="{TemplateBinding Background}"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="*"/> | |||||
<ColumnDefinition Width="Auto"/> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="*"/> | |||||
<RowDefinition Height="Auto"/> | |||||
</Grid.RowDefinitions> | |||||
<Rectangle x:Name="Corner" Grid.Column="1" Fill="White" Grid.Row="1"/> | |||||
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="0" Margin="{TemplateBinding Padding}" Grid.Row="0"/> | |||||
<ScrollBar x:Name="PART_VerticalScrollBar" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Grid.Row="0" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}" Style="{DynamicResource MyScrollBarStyle}"/> | |||||
<ScrollBar x:Name="PART_HorizontalScrollBar" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Orientation="Horizontal" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}" Style="{DynamicResource MyScrollBarStyle}"/> | |||||
</Grid> | |||||
</ControlTemplate> | |||||
<Style x:Key="VerticalScrollBarPageButton" TargetType="{x:Type RepeatButton}"> | |||||
<Setter Property="OverridesDefaultStyle" Value="true"/> | |||||
<Setter Property="Background" Value="Transparent"/> | |||||
<Setter Property="Focusable" Value="false"/> | |||||
<Setter Property="IsTabStop" Value="false"/> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="{x:Type RepeatButton}"> | |||||
<Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
<!--#endregion--> | <!--#endregion--> | ||||
<!--#region右键菜单--> | <!--#region右键菜单--> | ||||
<Style TargetType="{x:Type ContextMenu}"> | <Style TargetType="{x:Type ContextMenu}"> | ||||
<Setter Property="Template"> | <Setter Property="Template"> | ||||
@@ -201,6 +240,28 @@ | |||||
</Setter.Value> | </Setter.Value> | ||||
</Setter> | </Setter> | ||||
</Style> | </Style> | ||||
<Style x:Key="ButtontextStyle" TargetType="Button"> | |||||
<Setter Property="Background" Value="Transparent"/> | |||||
<Setter Property="Foreground" Value="#FF2AB2E7"/> | |||||
<Setter Property="BorderBrush" Value="Transparent"/> | |||||
<Setter Property="BorderThickness" Value="0"/> | |||||
<Setter Property="FontSize" Value="14"/> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="{x:Type Button}"> | |||||
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"> | |||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> | |||||
</Border> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Setter TargetName="border" Property="Background" Value="Transparent"/> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
<!--#endregion--> | <!--#endregion--> | ||||
<!--#region 用户输入框样式--> | <!--#region 用户输入框样式--> | ||||
@@ -281,7 +342,8 @@ | |||||
</Setter.Value> | </Setter.Value> | ||||
</Setter> | </Setter> | ||||
</Style> | </Style> | ||||
<!--#endregion--> | |||||
<!--#region 密码输入框样式--> | <!--#region 密码输入框样式--> | ||||
<Style x:Key="PasswordBoxStyle" TargetType="{x:Type PasswordBox}"> | <Style x:Key="PasswordBoxStyle" TargetType="{x:Type PasswordBox}"> | ||||
<Setter Property="Background" Value="Transparent" /> | <Setter Property="Background" Value="Transparent" /> | ||||
@@ -372,6 +434,300 @@ | |||||
</Style> | </Style> | ||||
<!--#endregion--> | <!--#endregion--> | ||||
<!--#region Combox--> | |||||
<ControlTemplate x:Key="ComboBoxToggleButton" TargetType="{x:Type ToggleButton}"> | |||||
<Grid Height="25" HorizontalAlignment="Stretch" Background="Transparent"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="*" /> | |||||
<ColumnDefinition Width="30" /> | |||||
</Grid.ColumnDefinitions> | |||||
<Border | |||||
Grid.ColumnSpan="2" | |||||
Background="White" | |||||
Opacity="0" /> | |||||
<Path | |||||
x:Name="Arrow" | |||||
Grid.Column="1" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
Data="M 0 0 6 6 12 0 Z" | |||||
Fill="#FF2AB2E7" | |||||
Stretch="None"> | |||||
<Path.Effect> | |||||
<DropShadowEffect | |||||
BlurRadius="10" | |||||
Direction="90" | |||||
Opacity="1" | |||||
RenderingBias="Quality" | |||||
ShadowDepth="0" | |||||
Color="Transparent" /> | |||||
</Path.Effect> | |||||
</Path> | |||||
</Grid> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsChecked" Value="true"> | |||||
<Setter TargetName="Arrow" Property="RenderTransform"> | |||||
<Setter.Value> | |||||
<RotateTransform Angle="180" CenterX="6" CenterY="3" /> | |||||
</Setter.Value> | |||||
</Setter> | |||||
<Setter TargetName="Arrow" Property="Margin" Value="0,0,0,2" /> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
<Style x:Key="CommonCombox" TargetType="{x:Type ComboBox}"> | |||||
<Setter Property="BorderThickness" Value="1" /> | |||||
<Setter Property="Background" Value=" #041039"/> | |||||
<Setter Property="BorderBrush" Value="#FF2AB2E7"/> | |||||
<Setter Property="BorderThickness" Value="1"/> | |||||
<Setter Property="ItemContainerStyle"> | |||||
<Setter.Value> | |||||
<Style TargetType="ComboBoxItem"> | |||||
<Setter Property="Height" Value="25" /> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="{x:Type ComboBoxItem}"> | |||||
<Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" > | |||||
<Border x:Name="_borderbg" Background=" #041039" BorderBrush="#FF2AB2E7" BorderThickness="0"/> | |||||
<TextBlock | |||||
x:Name="_txt" | |||||
Margin="5,0,3,0" | |||||
HorizontalAlignment="Left" | |||||
VerticalAlignment="Center" | |||||
Foreground="#FF2AB2E7" | |||||
Text="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" /> | |||||
<Border | |||||
x:Name="_border" | |||||
Background="Transparent" | |||||
Opacity="0" /> | |||||
</Grid> | |||||
<ControlTemplate.Triggers> | |||||
<MultiTrigger> | |||||
<MultiTrigger.Conditions> | |||||
<Condition Property="IsSelected" Value="false" /> | |||||
<Condition Property="IsMouseOver" Value="true" /> | |||||
</MultiTrigger.Conditions> | |||||
<Setter TargetName="_borderbg" Property="Background" Value="#37405E" /> | |||||
<Setter TargetName="_borderbg" Property="BorderBrush" Value="white" /> | |||||
<Setter TargetName="_borderbg" Property="BorderThickness" Value="1" /> | |||||
<Setter TargetName="_txt" Property="Foreground" Value="white" /> | |||||
</MultiTrigger> | |||||
<MultiTrigger> | |||||
<MultiTrigger.Conditions> | |||||
<Condition Property="IsSelected" Value="true" /> | |||||
</MultiTrigger.Conditions> | |||||
<Setter TargetName="_borderbg" Property="Background" Value="#022352" /> | |||||
<Setter TargetName="_borderbg" Property="BorderBrush" Value=" #00BFFF" /> | |||||
<Setter TargetName="_borderbg" Property="BorderThickness" Value="1" /> | |||||
<Setter TargetName="_txt" Property="Foreground" Value="white" /> | |||||
</MultiTrigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
</Setter.Value> | |||||
</Setter> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="{x:Type ComboBox}"> | |||||
<Grid> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="0.7*" /> | |||||
<ColumnDefinition Width="0.3*" MaxWidth="30" /> | |||||
</Grid.ColumnDefinitions> | |||||
<Border | |||||
x:Name="_prybr" | |||||
Grid.Column="0" | |||||
Grid.ColumnSpan="2" | |||||
BorderBrush="{TemplateBinding BorderBrush}" | |||||
BorderThickness="{TemplateBinding BorderThickness}" | |||||
CornerRadius="0" /> | |||||
<ContentPresenter | |||||
x:Name="ContentSite" | |||||
Margin="3,3,0,3" | |||||
HorizontalAlignment="Center" | |||||
VerticalAlignment="Center" | |||||
Content="{TemplateBinding SelectionBoxItem}" | |||||
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" | |||||
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" | |||||
IsHitTestVisible="False" /> | |||||
<!-- ToggleButton 已数据绑定到 ComboBox 本身以切换 IsDropDownOpen --> | |||||
<ToggleButton | |||||
Background="Transparent" | |||||
x:Name="ToggleButton" | |||||
Grid.Column="0" | |||||
Grid.ColumnSpan="2" | |||||
ClickMode="Press" | |||||
Focusable="false" | |||||
IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" | |||||
Template="{StaticResource ComboBoxToggleButton}" /> | |||||
<!-- 必须将 TextBox 命名为 PART_EditableTextBox,否则 ComboBox 将无法识别它 --> | |||||
<TextBox | |||||
x:Name="PART_EditableTextBox" | |||||
Margin="2,0,0,0" | |||||
VerticalAlignment="Center" | |||||
Background="Transparent" | |||||
BorderThickness="0" | |||||
CaretBrush="{TemplateBinding Foreground}" | |||||
Focusable="True" | |||||
Foreground="{TemplateBinding Foreground}" | |||||
IsReadOnly="{TemplateBinding IsReadOnly}" | |||||
Visibility="Hidden" /> | |||||
<!-- Popup 可显示 ComboBox 中的项列表。IsOpen 已数据绑定到通过 ComboBoxToggleButton 来切换的 IsDropDownOpen --> | |||||
<Popup | |||||
x:Name="Popup" | |||||
AllowsTransparency="True" | |||||
Focusable="False" | |||||
IsOpen="{TemplateBinding IsDropDownOpen}" | |||||
Placement="Bottom" | |||||
PopupAnimation="Slide"> | |||||
<Grid | |||||
x:Name="DropDown" | |||||
MinWidth="{TemplateBinding ActualWidth}" | |||||
MaxHeight="150" | |||||
SnapsToDevicePixels="True"> | |||||
<Border | |||||
x:Name="DropDownBorder" | |||||
BorderBrush="Black" | |||||
BorderThickness="0" /> | |||||
<ScrollViewer | |||||
Margin="1" | |||||
CanContentScroll="True" | |||||
HorizontalScrollBarVisibility="Hidden" | |||||
SnapsToDevicePixels="True" | |||||
VerticalScrollBarVisibility="Auto" | |||||
Template="{DynamicResource MyScrollViewer }"> | |||||
<!-- StackPanel 用于显示子级,方法是将 IsItemsHost 设置为 True --> | |||||
<!-- 一下可以设置列表背景色 --> | |||||
<StackPanel | |||||
Background="{TemplateBinding Background}" | |||||
IsItemsHost="True" | |||||
KeyboardNavigation.DirectionalNavigation="Contained"/> | |||||
</ScrollViewer> | |||||
</Grid> | |||||
</Popup> | |||||
</Grid> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsEditable" Value="true"> | |||||
<Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible" /> | |||||
</Trigger> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Setter TargetName="_prybr" Property="BorderBrush" Value="#aa3ba7f2" /> | |||||
</Trigger> | |||||
<Trigger Property="IsEnabled" Value="False"> | |||||
<Setter TargetName="ContentSite" Property="Opacity" Value="0.6" /> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
<!--滚动条颜色、圆角等设置--> | |||||
<Style x:Key="HorizontalScrollBarPageButton" TargetType="{x:Type RepeatButton}"> | |||||
<Setter Property="OverridesDefaultStyle" Value="true"/> | |||||
<Setter Property="Background" Value="Transparent"/> | |||||
<Setter Property="Focusable" Value="false"/> | |||||
<Setter Property="IsTabStop" Value="false"/> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="{x:Type RepeatButton}"> | |||||
<Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
<Style x:Key="MyScrollBarStyle" TargetType="{x:Type ScrollBar}"> | |||||
<Setter Property="Background" Value="AliceBlue"/> | |||||
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="false"/> | |||||
<Setter Property="Stylus.IsFlicksEnabled" Value="false"/> | |||||
<!--滚动条宽度--> | |||||
<Setter Property="Width" Value="8"/> | |||||
<Setter Property="MinWidth" Value="6"/> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="{x:Type ScrollBar}"> | |||||
<!--滚动条背景色--> | |||||
<Grid x:Name="Bg" Background="#001f55" SnapsToDevicePixels="true" Width="8"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<Track x:Name="PART_Track" IsDirectionReversed="true" IsEnabled="{TemplateBinding IsMouseOver}"> | |||||
<Track.DecreaseRepeatButton> | |||||
<RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Style="{StaticResource VerticalScrollBarPageButton}"/> | |||||
</Track.DecreaseRepeatButton> | |||||
<Track.IncreaseRepeatButton> | |||||
<RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Style="{StaticResource VerticalScrollBarPageButton}"/> | |||||
</Track.IncreaseRepeatButton> | |||||
<Track.Thumb> | |||||
<Thumb Style="{StaticResource ScrollBarThumb}"/> | |||||
</Track.Thumb> | |||||
</Track> | |||||
</Grid> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsEnabled" Value="false"> | |||||
<Setter Property="Background" TargetName="Bg" Value="{StaticResource ScrollBarDisabledBackground}"/> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
<Style.Triggers> | |||||
<Trigger Property="Orientation" Value="Horizontal"> | |||||
<Setter Property="Width" Value="Auto"/> | |||||
<Setter Property="MinWidth" Value="0"/> | |||||
<Setter Property="Height" Value="6"/> | |||||
<Setter Property="MinHeight" Value="6"/> | |||||
<Setter Property="Background" Value="AliceBlue"/> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="{x:Type ScrollBar}"> | |||||
<Grid x:Name="Bg" Background="Red" SnapsToDevicePixels="true"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition /> | |||||
</Grid.ColumnDefinitions> | |||||
<Track x:Name="PART_Track" IsEnabled="{TemplateBinding IsMouseOver}"> | |||||
<Track.DecreaseRepeatButton> | |||||
<RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Style="{StaticResource HorizontalScrollBarPageButton}"/> | |||||
</Track.DecreaseRepeatButton> | |||||
<Track.IncreaseRepeatButton> | |||||
<RepeatButton Command="{x:Static ScrollBar.PageRightCommand}" Style="{StaticResource HorizontalScrollBarPageButton}"/> | |||||
</Track.IncreaseRepeatButton> | |||||
<Track.Thumb> | |||||
<Thumb Style="{StaticResource ScrollBarThumb}" /> | |||||
</Track.Thumb> | |||||
</Track> | |||||
</Grid> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsEnabled" Value="false"> | |||||
<Setter Property="Background" TargetName="Bg" Value="{StaticResource ScrollBarDisabledBackground}"/> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
</Style.Triggers> | |||||
</Style> | |||||
<!--#endregion--> | |||||
<Style x:Key="CommonTextBox" TargetType="{x:Type TextBox}"> | <Style x:Key="CommonTextBox" TargetType="{x:Type TextBox}"> | ||||
<Setter Property="Foreground" Value="Orange"/> | <Setter Property="Foreground" Value="Orange"/> | ||||
<Setter Property="Background" Value="Transparent"/> | <Setter Property="Background" Value="Transparent"/> | ||||
@@ -17,12 +17,18 @@ | |||||
<None Remove="Image\信息边框.png" /> | <None Remove="Image\信息边框.png" /> | ||||
<None Remove="Image\图层1.png" /> | <None Remove="Image\图层1.png" /> | ||||
<None Remove="Image\图层2.png" /> | <None Remove="Image\图层2.png" /> | ||||
<None Remove="Image\圆形按钮背景.png" /> | |||||
<None Remove="Image\圆形按钮背景1.png" /> | |||||
<None Remove="Image\圆形按钮背景2.png" /> | |||||
<None Remove="Image\容器边框.png" /> | <None Remove="Image\容器边框.png" /> | ||||
<None Remove="Image\尺条框.png" /> | <None Remove="Image\尺条框.png" /> | ||||
<None Remove="Image\成功提示.png" /> | <None Remove="Image\成功提示.png" /> | ||||
<None Remove="Image\按钮背景.png" /> | <None Remove="Image\按钮背景.png" /> | ||||
<None Remove="Image\文字背景1.png" /> | |||||
<None Remove="Image\文字背景2.png" /> | |||||
<None Remove="Image\方形.png" /> | <None Remove="Image\方形.png" /> | ||||
<None Remove="Image\方形背景.png" /> | <None Remove="Image\方形背景.png" /> | ||||
<None Remove="Image\方形背景3.png" /> | |||||
<None Remove="Image\权限背景.png" /> | <None Remove="Image\权限背景.png" /> | ||||
<None Remove="Image\用户名边框.png" /> | <None Remove="Image\用户名边框.png" /> | ||||
<None Remove="Image\用户名边框1.png" /> | <None Remove="Image\用户名边框1.png" /> | ||||
@@ -41,12 +47,18 @@ | |||||
<Resource Include="Image\信息边框.png" /> | <Resource Include="Image\信息边框.png" /> | ||||
<Resource Include="Image\图层1.png" /> | <Resource Include="Image\图层1.png" /> | ||||
<Resource Include="Image\图层2.png" /> | <Resource Include="Image\图层2.png" /> | ||||
<Resource Include="Image\圆形按钮背景.png" /> | |||||
<Resource Include="Image\圆形按钮背景1.png" /> | |||||
<Resource Include="Image\圆形按钮背景2.png" /> | |||||
<Resource Include="Image\容器边框.png" /> | <Resource Include="Image\容器边框.png" /> | ||||
<Resource Include="Image\尺条框.png" /> | <Resource Include="Image\尺条框.png" /> | ||||
<Resource Include="Image\成功提示.png" /> | <Resource Include="Image\成功提示.png" /> | ||||
<Resource Include="Image\按钮背景.png" /> | <Resource Include="Image\按钮背景.png" /> | ||||
<Resource Include="Image\文字背景1.png" /> | |||||
<Resource Include="Image\文字背景2.png" /> | |||||
<Resource Include="Image\方形.png" /> | <Resource Include="Image\方形.png" /> | ||||
<Resource Include="Image\方形背景.png" /> | <Resource Include="Image\方形背景.png" /> | ||||
<Resource Include="Image\方形背景3.png" /> | |||||
<Resource Include="Image\权限背景.png" /> | <Resource Include="Image\权限背景.png" /> | ||||
<Resource Include="Image\用户名边框.png" /> | <Resource Include="Image\用户名边框.png" /> | ||||
<Resource Include="Image\用户名边框1.png" /> | <Resource Include="Image\用户名边框1.png" /> | ||||
@@ -61,6 +73,7 @@ | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<ProjectReference Include="..\BPASmart.CustomResource\BPASmart.CustomResource.csproj" /> | |||||
<ProjectReference Include="..\BPASmart.Model\BPASmart.Model.csproj" /> | <ProjectReference Include="..\BPASmart.Model\BPASmart.Model.csproj" /> | ||||
<ProjectReference Include="..\BPASmartClient.Helper\BPASmartClient.Helper.csproj" /> | <ProjectReference Include="..\BPASmartClient.Helper\BPASmartClient.Helper.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
@@ -1,4 +1,5 @@ | |||||
using System; | |||||
using BPASmart.Model; | |||||
using System; | |||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Linq; | using System.Linq; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,5 +10,7 @@ namespace BPASmart.UserManagement.Globle | |||||
public static class GlobleData | public static class GlobleData | ||||
{ | { | ||||
public static UserManager ChangeUser = new UserManager(); | public static UserManager ChangeUser = new UserManager(); | ||||
public static UserManager EditUser = new UserManager(); | |||||
} | } | ||||
} | } |
@@ -0,0 +1,50 @@ | |||||
<UserControl x:Class="BPASmart.UserManagement.MainControl" | |||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |||||
xmlns:local="clr-namespace:BPASmart.UserManagement" | |||||
xmlns:view="clr-namespace:BPASmart.UserManagement.View" | |||||
mc:Ignorable="d" | |||||
d:DesignHeight="600" d:DesignWidth="1000"> | |||||
<Grid > | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="200"/> | |||||
<ColumnDefinition Width="81*"/> | |||||
<ColumnDefinition Width="319*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="40"/> | |||||
<RowDefinition Height="*"/> | |||||
</Grid.RowDefinitions> | |||||
<Border Grid.RowSpan="2" Background="Transparent" BorderBrush="#1E90FF" BorderThickness="0,0,1,0"> | |||||
<view:UserList/> | |||||
</Border> | |||||
<Border Grid.RowSpan="2" Grid.Column="1" Grid.ColumnSpan="2"> | |||||
<Border.Background> | |||||
<ImageBrush ImageSource="../Image/背景4.png"/> | |||||
</Border.Background> | |||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="40"/> | |||||
<RowDefinition Height="*"/> | |||||
</Grid.RowDefinitions> | |||||
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,10,0"> | |||||
<Image Source="../Image/图层2.png" Width="100" Height="40"/> | |||||
<Button HorizontalAlignment="Right" VerticalAlignment="Center" Margin="10,0" Padding="10,3" FontSize="18" | |||||
Content="注册新用户" Style="{DynamicResource ButtonStyle}" Click="NewUser_Click" /> | |||||
<Image Source="../Image/图层2.png" Width="100"/> | |||||
</StackPanel> | |||||
<ContentControl Grid.Row="1" x:Name="mainContent" Background="Transparent" > | |||||
</ContentControl> | |||||
</Grid> | |||||
</Border> | |||||
</Grid> | |||||
</UserControl> |
@@ -0,0 +1,54 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Reflection; | |||||
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.Input; | |||||
using System.Windows.Media; | |||||
using System.Windows.Media.Imaging; | |||||
using System.Windows.Navigation; | |||||
using System.Windows.Shapes; | |||||
namespace BPASmart.UserManagement | |||||
{ | |||||
/// <summary> | |||||
/// MainControl.xaml 的交互逻辑 | |||||
/// </summary> | |||||
public partial class MainControl : UserControl | |||||
{ | |||||
public MainControl() | |||||
{ | |||||
InitializeComponent(); | |||||
ActionManage.GetInstance.Register(new Action<object>((o) => { | |||||
if (o == null) | |||||
{ | |||||
return; | |||||
} | |||||
if (o == string.Empty) | |||||
{ | |||||
mainContent.Content = null; | |||||
return; | |||||
} | |||||
if (o is string pageName) | |||||
{ | |||||
Type type = Type.GetType($"BPASmart.UserManagement.View.{pageName}"); | |||||
if (type == null) { return; } | |||||
ConstructorInfo cti = type.GetConstructor(System.Type.EmptyTypes); | |||||
mainContent.Content = (FrameworkElement)cti.Invoke(null); | |||||
} | |||||
}), "ChangeMianContent"); | |||||
} | |||||
private void NewUser_Click(object sender, RoutedEventArgs e) | |||||
{ | |||||
ActionManage.GetInstance.Send("ChangeMianContent", "AddNewUser"); | |||||
} | |||||
} | |||||
} |
@@ -66,47 +66,11 @@ | |||||
</Grid> | </Grid> | ||||
</Border> | </Border> | ||||
<Grid Grid.Row="1"> | <Grid Grid.Row="1"> | ||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="200"/> | |||||
<ColumnDefinition Width="81*"/> | |||||
<ColumnDefinition Width="319*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="40"/> | |||||
<RowDefinition Height="*"/> | |||||
</Grid.RowDefinitions> | |||||
<Border Grid.RowSpan="2" Background="Transparent" BorderBrush="#1E90FF" BorderThickness="0,0,1,0"> | |||||
<view:UserList/> | |||||
</Border> | |||||
<local:MainControl/> | |||||
<Border Grid.RowSpan="2" Grid.Column="1" Grid.ColumnSpan="2"> | |||||
<Border.Background> | |||||
<ImageBrush ImageSource="../Image/背景4.png"/> | |||||
</Border.Background> | |||||
<Grid> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="40"/> | |||||
<RowDefinition Height="*"/> | |||||
</Grid.RowDefinitions> | |||||
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,10,0"> | |||||
<Image Source="../Image/图层2.png" Width="100" Height="40"/> | |||||
<Button HorizontalAlignment="Right" VerticalAlignment="Center" Margin="10,0" Padding="10,3" FontSize="18" | |||||
Content="注册新用户" Style="{DynamicResource ButtonStyle}" Click="NewUser_Click" /> | |||||
<Image Source="../Image/图层2.png" Width="100"/> | |||||
</StackPanel> | |||||
<ContentControl Grid.Row="1" x:Name="mainContent" Background="Transparent" > | |||||
</ContentControl> | |||||
</Grid> | |||||
</Border> | |||||
</Grid> | </Grid> | ||||
</Grid> | |||||
</Grid> | |||||
</Border> | </Border> | ||||
@@ -36,26 +36,6 @@ namespace BPASmart.UserManagement | |||||
} | } | ||||
}; | }; | ||||
ActionManage.GetInstance.Register(new Action<object>((o) => { | |||||
if (o == null) | |||||
{ | |||||
return; | |||||
} | |||||
if(o == string.Empty) | |||||
{ | |||||
mainContent.Content = null; | |||||
return; | |||||
} | |||||
if(o is string pageName) | |||||
{ | |||||
Type type = Type.GetType($"BPASmart.UserManagement.View.{pageName}"); | |||||
if (type == null) { return; } | |||||
ConstructorInfo cti = type.GetConstructor(System.Type.EmptyTypes); | |||||
mainContent.Content = (FrameworkElement)cti.Invoke(null); | |||||
} | |||||
}), "ChangeMianContent"); | |||||
} | } | ||||
private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) | private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) | ||||
@@ -70,9 +50,6 @@ namespace BPASmart.UserManagement | |||||
private void NewUser_Click(object sender, RoutedEventArgs e) | |||||
{ | |||||
ActionManage.GetInstance.Send("ChangeMianContent", "AddNewUser"); | |||||
} | |||||
} | } | ||||
} | } |
@@ -4,15 +4,278 @@ | |||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | ||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | ||||
xmlns:local="clr-namespace:BPASmart.UserManagement.View" | xmlns:local="clr-namespace:BPASmart.UserManagement.View" | ||||
xmlns:vm="clr-namespace:BPASmart.UserManagement.ViewModel" | |||||
mc:Ignorable="d" | mc:Ignorable="d" | ||||
d:DesignHeight="450" d:DesignWidth="800" FontFamily="楷体"> | d:DesignHeight="450" d:DesignWidth="800" FontFamily="楷体"> | ||||
<Border> | |||||
<UserControl.DataContext> | |||||
<vm:EditPowerViewModel/> | |||||
</UserControl.DataContext> | |||||
<UserControl.Resources> | |||||
<Style x:Key="ItemContainer" TargetType="{x:Type ListBoxItem}"> | |||||
<Setter Property="Template"> | |||||
<Setter.Value> | |||||
<ControlTemplate TargetType="{x:Type ListBoxItem}"> | |||||
<Border x:Name="IconBorder" Background="Transparent" CornerRadius="4" BorderThickness="0"> | |||||
<ContentPresenter /> | |||||
</Border> | |||||
<ControlTemplate.Triggers> | |||||
<Trigger Property="IsSelected" Value="true"> | |||||
<Setter TargetName="IconBorder" Property="BitmapEffect"> | |||||
<Setter.Value> | |||||
<OuterGlowBitmapEffect GlowColor="Transparent" GlowSize="5" /> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Trigger> | |||||
</ControlTemplate.Triggers> | |||||
</ControlTemplate> | |||||
</Setter.Value> | |||||
</Setter> | |||||
</Style> | |||||
</UserControl.Resources> | |||||
<Border Margin="10,20"> | |||||
<Border.Background> | <Border.Background> | ||||
<ImageBrush ImageSource="../image/方形背景.png"/> | |||||
<ImageBrush ImageSource="pack://application:,,,/BPASmart.CustomResource;component/Image/方形背景2.png"/> | |||||
</Border.Background> | </Border.Background> | ||||
<Grid> | <Grid> | ||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="18*"/> | |||||
<RowDefinition Height="391*"/> | |||||
</Grid.RowDefinitions> | |||||
<TextBlock Text="权限编辑" | |||||
FontSize="18" Foreground="#F0FFF0" | |||||
HorizontalAlignment="Center" VerticalAlignment="Center" Width="72"/> | |||||
<Grid Grid.Row="1"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="3*"/> | |||||
<RowDefinition Height="40*"/> | |||||
<RowDefinition Height="328*"/> | |||||
</Grid.RowDefinitions> | |||||
<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="0,0,0,2" | |||||
HorizontalAlignment="Center" VerticalAlignment="Center"> | |||||
<TextBlock Text="用户名:" Foreground="{DynamicResource commanTextblock}" FontSize="18" | |||||
HorizontalAlignment="Center" VerticalAlignment="Center"/> | |||||
<ComboBox Width="120" Margin="20,0" ItemsSource="{Binding UserNames}" SelectedItem="{Binding CurrentUserName}" FontSize="16" Foreground="{DynamicResource commanTextblock}" | |||||
Style="{DynamicResource CommonCombox}"/> | |||||
<Button Content="保存" Style="{DynamicResource CommonButton}" Width="100" FontSize="18" Command="{Binding SaveUserPowerCommand}" Margin="10,0"/> | |||||
<Button Content="取消" Style="{DynamicResource CommonButton}" Width="100" FontSize="18" Command="{Binding CancelCommand}" Margin="10,0"/> | |||||
</StackPanel> | |||||
<Grid Grid.Row="2" Margin="5"> | |||||
<Grid.ColumnDefinitions> | |||||
<ColumnDefinition Width="0.15*"/> | |||||
<ColumnDefinition Width="*"/> | |||||
<ColumnDefinition Width="0.35*"/> | |||||
<ColumnDefinition Width="*"/> | |||||
<ColumnDefinition Width="0.15*"/> | |||||
</Grid.ColumnDefinitions> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition Height="14*"/> | |||||
<RowDefinition Height="1*"/> | |||||
</Grid.RowDefinitions> | |||||
<!--#region 界面列表--> | |||||
<Border Grid.Column="1" Margin="20,0,20,0"> | |||||
<Border.Background> | |||||
<ImageBrush ImageSource="../Image/方形背景3.png"/> | |||||
</Border.Background> | |||||
<ScrollViewer CanContentScroll="True" Template="{DynamicResource ScrollViewerControlTemplate1}" | |||||
Width="auto" Margin="10" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> | |||||
<ListBox Background="Transparent" ItemContainerStyle="{StaticResource ItemContainer}" FocusVisualStyle="{x:Null}" | |||||
ItemsSource="{Binding pageList}" > | |||||
<ListBox.Template> | |||||
<ControlTemplate> | |||||
<StackPanel Background="Transparent" IsItemsHost="True"></StackPanel> | |||||
</ControlTemplate> | |||||
</ListBox.Template> | |||||
<ListBox.ItemTemplate> | |||||
<DataTemplate> | |||||
<Button Background="Transparent" BorderBrush="Transparent" BorderThickness="0" Style="{DynamicResource ButtontextStyle}" | |||||
Command="{Binding DataContext.AddPageCommand, RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor}}" | |||||
CommandParameter="{Binding Name}"> | |||||
<Border x:Name="leftborder" Width="130" HorizontalAlignment="Center" Margin="5"> | |||||
<Border.Background> | |||||
<ImageBrush ImageSource="../Image/文字背景2.png"/> | |||||
</Border.Background> | |||||
<TextBlock Text="{Binding Name}" Margin="8" | |||||
FontSize="18" Foreground="white" HorizontalAlignment="Center" VerticalAlignment="Center"/> | |||||
</Border> | |||||
</Button> | |||||
<DataTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="true"> | |||||
<Setter Property="Width" Value="160" TargetName="leftborder"/> | |||||
</Trigger> | |||||
</DataTemplate.Triggers> | |||||
</DataTemplate> | |||||
</ListBox.ItemTemplate> | |||||
</ListBox> | |||||
</ScrollViewer> | |||||
</Border> | |||||
<!--#endregion--> | |||||
<Grid Grid.Column="2"> | |||||
<Grid.RowDefinitions> | |||||
<RowDefinition /> | |||||
<RowDefinition /> | |||||
</Grid.RowDefinitions> | |||||
<Button Width="80" Height="80" Command="{Binding AddAllPageCommand}"> | |||||
<Button.Template> | |||||
<ControlTemplate TargetType="{x:Type Button}"> | |||||
<Border > | |||||
<Grid> | |||||
<StackPanel Orientation="Vertical" Margin="5" HorizontalAlignment="Center" VerticalAlignment="Center" > | |||||
<TextBlock Text="全部" FontSize="20" Foreground="{DynamicResource commanTextblock}"/> | |||||
<TextBlock Text="添加" FontSize="20" Foreground="{DynamicResource commanTextblock}"/> | |||||
</StackPanel> | |||||
<Border> | |||||
<Border.Background> | |||||
<ImageBrush x:Name="image" ImageSource="../Image/圆形按钮背景2.png"> | |||||
</ImageBrush> | |||||
</Border.Background> | |||||
<Border.Style> | |||||
<Style TargetType="Border"> | |||||
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/> | |||||
<Setter Property="RenderTransform"> | |||||
<Setter.Value> | |||||
<TransformGroup> | |||||
<RotateTransform/> | |||||
</TransformGroup> | |||||
</Setter.Value> | |||||
</Setter> | |||||
<Style.Triggers> | |||||
<EventTrigger RoutedEvent="Loaded" > | |||||
<EventTrigger.Actions> | |||||
<BeginStoryboard x:Name="run1"> | |||||
<Storyboard RepeatBehavior="Forever" Storyboard.TargetProperty="RenderTransform.Children[0].Angle"> | |||||
<DoubleAnimation From="0" To="360" Duration="0:0:6"/> | |||||
</Storyboard> | |||||
</BeginStoryboard> | |||||
<PauseStoryboard BeginStoryboardName="run1"/> | |||||
</EventTrigger.Actions> | |||||
</EventTrigger> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Trigger.EnterActions> | |||||
<ResumeStoryboard BeginStoryboardName="run1"/> | |||||
</Trigger.EnterActions> | |||||
</Trigger> | |||||
<Trigger Property="IsMouseOver" Value="False"> | |||||
<Trigger.EnterActions> | |||||
<PauseStoryboard BeginStoryboardName="run1"/> | |||||
</Trigger.EnterActions> | |||||
</Trigger> | |||||
</Style.Triggers> | |||||
</Style> | |||||
</Border.Style> | |||||
</Border> | |||||
</Grid> | |||||
</Border> | |||||
</ControlTemplate> | |||||
</Button.Template> | |||||
</Button> | |||||
<Button Grid.Row="1" Width="80" Height="80" Command="{Binding DeleteAllPageCommand}"> | |||||
<Button.Template> | |||||
<ControlTemplate TargetType="{x:Type Button}"> | |||||
<Border > | |||||
<Grid> | |||||
<StackPanel Orientation="Vertical" Margin="5" HorizontalAlignment="Center" VerticalAlignment="Center" > | |||||
<TextBlock Text="全部" FontSize="20" Foreground="{DynamicResource commanTextblock}"/> | |||||
<TextBlock Text="移除" FontSize="20" Foreground="{DynamicResource commanTextblock}"/> | |||||
</StackPanel> | |||||
<Border x:Name="myborder"> | |||||
<Border.Background> | |||||
<ImageBrush x:Name="image" ImageSource="../Image/圆形按钮背景1.png"> | |||||
</ImageBrush> | |||||
</Border.Background> | |||||
<Border.Style> | |||||
<Style TargetType="Border"> | |||||
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/> | |||||
<Setter Property="RenderTransform"> | |||||
<Setter.Value> | |||||
<TransformGroup> | |||||
<RotateTransform/> | |||||
</TransformGroup> | |||||
</Setter.Value> | |||||
</Setter> | |||||
<Style.Triggers> | |||||
<EventTrigger RoutedEvent="Loaded" > | |||||
<EventTrigger.Actions> | |||||
<BeginStoryboard x:Name="run1"> | |||||
<Storyboard RepeatBehavior="Forever" Storyboard.TargetProperty="RenderTransform.Children[0].Angle"> | |||||
<DoubleAnimation From="360" To="0" Duration="0:0:6"/> | |||||
</Storyboard> | |||||
</BeginStoryboard> | |||||
<PauseStoryboard BeginStoryboardName="run1"/> | |||||
</EventTrigger.Actions> | |||||
</EventTrigger> | |||||
<Trigger Property="IsMouseOver" Value="True"> | |||||
<Trigger.EnterActions> | |||||
<ResumeStoryboard BeginStoryboardName="run1"/> | |||||
</Trigger.EnterActions> | |||||
</Trigger> | |||||
<Trigger Property="IsMouseOver" Value="False"> | |||||
<Trigger.EnterActions> | |||||
<PauseStoryboard BeginStoryboardName="run1" /> | |||||
</Trigger.EnterActions> | |||||
</Trigger> | |||||
</Style.Triggers> | |||||
</Style> | |||||
</Border.Style> | |||||
</Border> | |||||
</Grid> | |||||
</Border> | |||||
</ControlTemplate> | |||||
</Button.Template> | |||||
</Button> | |||||
</Grid> | |||||
<!--#region 用户界面列表--> | |||||
<Border Grid.Column="3" Margin="20,0,20,0"> | |||||
<Border.Background> | |||||
<ImageBrush ImageSource="../Image/方形背景3.png"/> | |||||
</Border.Background> | |||||
<ScrollViewer CanContentScroll="True" Template="{DynamicResource ScrollViewerControlTemplate1}" | |||||
Width="auto" Margin="10" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> | |||||
<ListBox Background="Transparent" ItemContainerStyle="{StaticResource ItemContainer}" FocusVisualStyle="{x:Null}" Width="auto" | |||||
ItemsSource="{Binding userPageList}" > | |||||
<ListBox.Template> | |||||
<ControlTemplate> | |||||
<StackPanel Background="Transparent" IsItemsHost="True"></StackPanel> | |||||
</ControlTemplate> | |||||
</ListBox.Template> | |||||
<ListBox.ItemTemplate> | |||||
<DataTemplate> | |||||
<Button Background="Transparent" BorderBrush="Transparent" BorderThickness="0" Style="{DynamicResource ButtontextStyle}" | |||||
Command="{Binding DataContext.DeletePageCommand, RelativeSource={RelativeSource AncestorType=UserControl,Mode=FindAncestor}}" | |||||
CommandParameter="{Binding Name}"> | |||||
<Border x:Name="leftborder" Width="130" HorizontalAlignment="Center" Margin="5"> | |||||
<Border.Background> | |||||
<ImageBrush ImageSource="../Image/文字背景2.png"/> | |||||
</Border.Background> | |||||
<TextBlock Text="{Binding Name}" Margin="8" | |||||
FontSize="18" Foreground="white" HorizontalAlignment="Center" VerticalAlignment="Center"/> | |||||
</Border> | |||||
</Button> | |||||
<DataTemplate.Triggers> | |||||
<Trigger Property="IsMouseOver" Value="true"> | |||||
<Setter Property="Width" Value="160" TargetName="leftborder"/> | |||||
</Trigger> | |||||
</DataTemplate.Triggers> | |||||
</DataTemplate> | |||||
</ListBox.ItemTemplate> | |||||
</ListBox> | |||||
</ScrollViewer> | |||||
</Border> | |||||
<!--#endregion--> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | </Grid> | ||||
</Border> | </Border> | ||||
</UserControl> | </UserControl> |
@@ -1,4 +1,5 @@ | |||||
using BPASmart.Model.用户; | |||||
using BPASmart.Model; | |||||
using BPASmart.Model; | |||||
using BPASmartClient.Helper; | using BPASmartClient.Helper; | ||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
@@ -0,0 +1,115 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Collections.ObjectModel; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
namespace BPASmart.UserManagement.ViewModel | |||||
{ | |||||
[INotifyPropertyChanged] | |||||
partial class EditPowerViewModel | |||||
{ | |||||
/// <summary> | |||||
/// 全部页面 | |||||
/// </summary> | |||||
public ObservableCollection<pageName> pageList { get; set; } = new ObservableCollection<pageName>(); | |||||
/// <summary> | |||||
/// 用户权限页面 | |||||
/// </summary> | |||||
public ObservableCollection<pageName> userPageList { get; set; } = new ObservableCollection<pageName>(); | |||||
public ObservableCollection<string> UserNames { get; set; } = new ObservableCollection<string>(); | |||||
[ObservableProperty] | |||||
private string _currentUserName; | |||||
/// <summary> | |||||
/// 保存 | |||||
/// </summary> | |||||
[RelayCommand] | |||||
private void SaveUserPower() | |||||
{ | |||||
Globle.GlobleData.EditUser = null; | |||||
ActionManage.GetInstance.Send("ChangeMianContent", string.Empty); | |||||
} | |||||
/// <summary> | |||||
/// 取消 | |||||
/// </summary> | |||||
[RelayCommand] | |||||
private void Cancel() | |||||
{ | |||||
ActionManage.GetInstance.Send("ChangeMianContent", string.Empty); | |||||
} | |||||
/// <summary> | |||||
/// 添加全部界面 | |||||
/// </summary> | |||||
[RelayCommand] | |||||
private void AddAllPage() | |||||
{ | |||||
userPageList.Clear(); | |||||
foreach(var item in pageList) | |||||
{ | |||||
userPageList.Add(item); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 删除全部界面 | |||||
/// </summary> | |||||
[RelayCommand] | |||||
private void DeleteAllPage() | |||||
{ | |||||
userPageList.Clear(); | |||||
} | |||||
[RelayCommand] | |||||
private void AddPage(object o) | |||||
{ | |||||
if (o == null) return; | |||||
if (o is string materail) | |||||
{ | |||||
var res = pageList.FirstOrDefault(p => p.Name == materail); | |||||
if (userPageList.FirstOrDefault(p => p.Name == res.Name) == null) | |||||
{ | |||||
userPageList.Add(res); | |||||
} | |||||
} | |||||
} | |||||
[RelayCommand] | |||||
private void DeletePage(object o) | |||||
{ | |||||
if (o == null) return; | |||||
if (o is string materail) | |||||
{ | |||||
var res = userPageList.FirstOrDefault(p => p.Name == materail); | |||||
userPageList.Remove(res); | |||||
} | |||||
} | |||||
public EditPowerViewModel() | |||||
{ | |||||
pageList.Add(new pageName { Name = "主界面" }); | |||||
pageList.Add(new pageName { Name = "控制界面" }); | |||||
pageList.Add(new pageName { Name = "调试界面" }); | |||||
pageList.Add(new pageName { Name = "日志界面" }); | |||||
pageList.Add(new pageName { Name = "参数界面"}); | |||||
pageList.Add(new pageName { Name = "调试界面" }); | |||||
pageList.Add(new pageName { Name = "日志界面" }); | |||||
pageList.Add(new pageName { Name = "参数界面" }); | |||||
foreach(var item in Json<LocalUser>.Data.UserManagers) | |||||
{ | |||||
UserNames.Add(item.UserName); | |||||
} | |||||
if (Globle.GlobleData.EditUser != null) | |||||
{ | |||||
CurrentUserName = Globle.GlobleData.EditUser.UserName; | |||||
} | |||||
} | |||||
} | |||||
public class pageName | |||||
{ | |||||
public string Name { get; set; } | |||||
} | |||||
} |
@@ -7,7 +7,7 @@ global using System.Collections.Generic; | |||||
global using System.Linq; | global using System.Linq; | ||||
global using System.Text; | global using System.Text; | ||||
global using System.Threading.Tasks; | global using System.Threading.Tasks; | ||||
global using BPASmart.Model.用户; | |||||
global using BPASmart.Model; | |||||
namespace BPASmart.UserManagement.ViewModel | namespace BPASmart.UserManagement.ViewModel | ||||
{ | { | ||||
@@ -1,4 +1,4 @@ | |||||
using BPASmart.Model.用户; | |||||
using BPASmart.Model; | |||||
using BPASmart.UserManagement.View; | using BPASmart.UserManagement.View; | ||||
using BPASmartClient.Helper; | using BPASmartClient.Helper; | ||||
using System; | using System; | ||||
@@ -54,6 +54,8 @@ namespace BPASmart.UserManagement.ViewModel | |||||
{ | { | ||||
if (userManagers.Contains(user)) | if (userManagers.Contains(user)) | ||||
{ | { | ||||
Globle.GlobleData.EditUser = null; | |||||
Globle.GlobleData.EditUser = user; | |||||
ActionManage.GetInstance.Send("ChangeMianContent", "EditPower"); | ActionManage.GetInstance.Send("ChangeMianContent", "EditPower"); | ||||
} | } | ||||
@@ -0,0 +1,13 @@ | |||||
<Project Sdk="Microsoft.NET.Sdk"> | |||||
<PropertyGroup> | |||||
<TargetFramework>net6.0</TargetFramework> | |||||
<ImplicitUsings>enable</ImplicitUsings> | |||||
<Nullable>enable</Nullable> | |||||
</PropertyGroup> | |||||
<ItemGroup> | |||||
<ProjectReference Include="..\BPASmartClient.Device\BPASmartClient.Device.csproj" /> | |||||
</ItemGroup> | |||||
</Project> |
@@ -0,0 +1,200 @@ | |||||
using BPA.Message.Enum; | |||||
using BPASmartClient.Device; | |||||
using BPASmartClient.EventBus; | |||||
using BPASmartClient.Model; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
using static BPASmartClient.EventBus.EventBus; | |||||
namespace BPASmartClient.MorkMOC | |||||
{ | |||||
public class Control_MorkMOC : BaseDevice | |||||
{ | |||||
GVL_MorkMOC morkMoc = new GVL_MorkMOC(); | |||||
PolymerBatching polymerBatching = new PolymerBatching(); | |||||
//放大倍数 | |||||
const int expand = 10; | |||||
public override DeviceClientType DeviceType => throw new NotImplementedException(); | |||||
public override void DoMain() | |||||
{ | |||||
ServerInit(); | |||||
DataParse(); | |||||
} | |||||
private void ServerInit() | |||||
{ | |||||
//物料信息 | |||||
EventBus.EventBus.GetInstance().Subscribe<MaterialDeliveryEvent>(DeviceId, delegate (IEvent @event, EventCallBackHandle callBack) | |||||
{ | |||||
if (@event == null) return; | |||||
if (@event is MaterialDeliveryEvent material) | |||||
{ | |||||
orderMaterialDelivery = material.orderMaterialDelivery; | |||||
} | |||||
}); | |||||
//配方数据信息 | |||||
EventBus.EventBus.GetInstance().Subscribe<RecipeBomEvent>(DeviceId, delegate (IEvent @event, EventCallBackHandle callBack) | |||||
{ | |||||
if (@event == null) return; | |||||
if (@event is RecipeBomEvent recipe) | |||||
{ | |||||
recipeBoms = recipe.recipeBoms; | |||||
} | |||||
}); | |||||
} | |||||
private void DataParse() | |||||
{ | |||||
EventBus.EventBus.GetInstance().Subscribe<DoOrderEvent>(DeviceId, delegate (IEvent @event, EventCallBackHandle callBack) | |||||
{ | |||||
if (@event == null) return; | |||||
if (@event is DoOrderEvent order) | |||||
{ | |||||
if (order.MorkOrder.GoodBatchings == null) return; | |||||
OrderCount++; | |||||
morkMoc.doOrderEvents.Add(order); | |||||
OrderChange(order.MorkOrder.SuborderId, ORDER_STATUS.WAIT); | |||||
DeviceProcessLogShow($"接收到{OrderCount}次订单"); | |||||
Dictionary<int, int> OrderPushes = new Dictionary<int, int>(); | |||||
foreach (var item in order.MorkOrder.GoodBatchings) | |||||
{ | |||||
var res = orderMaterialDelivery?.BatchingInfo?.FirstOrDefault(p => p.BatchingId == item.BatchingId); | |||||
if (res != null) | |||||
{ | |||||
OrderPushes.TryAdd(int.Parse(res.BatchingLoc), item.BatchingCount); | |||||
} | |||||
} | |||||
morkMoc.morkOrderPushes.Enqueue(new OrderLocInfo() | |||||
{ | |||||
GoodName = order.MorkOrder.GoodsName, | |||||
SuborderId = order.MorkOrder.SuborderId, | |||||
GoodPushes = OrderPushes | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
/// <summary> | |||||
/// 订单改变通知 | |||||
/// </summary> | |||||
/// <param name="subid"></param> | |||||
/// <param name="oRDER_STATUS"></param> | |||||
private void OrderChange(string subid, ORDER_STATUS oRDER_STATUS) | |||||
{ | |||||
var res = morkMoc.doOrderEvents.FirstOrDefault(p => p.MorkOrder.SuborderId == subid); | |||||
string goodName = string.Empty; | |||||
string SortNum = string.Empty; | |||||
EventBus.EventBus.GetInstance().Publish(new OrderStatusChangedEvent() | |||||
{ | |||||
SortNum = res.MorkOrder.SortNum.ToString(), | |||||
GoodName = res.MorkOrder.GoodsName, | |||||
Status = oRDER_STATUS, | |||||
SubOrderId = res.MorkOrder.SuborderId, | |||||
deviceClientType = DeviceType | |||||
}); | |||||
if (oRDER_STATUS == ORDER_STATUS.COMPLETED_COOK) morkMoc.doOrderEvents.Remove(res); | |||||
} | |||||
public override void MainTask() | |||||
{ | |||||
MakeProcess(); | |||||
} | |||||
/// <summary> | |||||
/// 制作流程 | |||||
/// </summary> | |||||
private void MakeProcess() | |||||
{ | |||||
if (morkMoc.morkOrderPushes.Count > 0) | |||||
{ | |||||
if (morkMoc.morkOrderPushes.TryDequeue(out OrderLocInfo orderLoc)) | |||||
{ | |||||
// 第一步:设置每个仓的出料量 | |||||
SetMaterialsWeight(orderLoc.GoodPushes); | |||||
DeviceProcessLogShow("设置出料量完成"); | |||||
//第二步:循环出料 | |||||
OutMaterials(orderLoc.GoodPushes); | |||||
DeviceProcessLogShow($"{orderLoc.GoodName}制作完成"); | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 设定出料重量 | |||||
/// </summary> | |||||
/// <param name="goodPushes"></param> | |||||
private void SetMaterialsWeight(Dictionary<int,int> goodPushes) | |||||
{ | |||||
foreach(var good in goodPushes) | |||||
{ | |||||
WriteControl(polymerBatching.plcData[good.Key - 1].WeightVar, good.Value * expand); | |||||
DeviceProcessLogShow($"{good.Key}号通道出料量:{good.Value}g"); | |||||
Thread.Sleep(300); | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// 循环出料 | |||||
/// </summary> | |||||
private void OutMaterials(Dictionary<int, int> goodPushes) | |||||
{ | |||||
foreach (var good in goodPushes) | |||||
{ | |||||
WriteControl(polymerBatching.plcData[good.Key - 1].StartUpVar, true); | |||||
Thread.Sleep(3000);//写入PLC开启通道后 PLC会先把完成信号置0,等待出料完成后置1 | |||||
while(!morkMoc.OutMaterailCompelete)//接收到完成信号后退出循环 | |||||
{ | |||||
Thread.Sleep(1000); | |||||
//需要加入超时提示或处理 | |||||
} | |||||
DeviceProcessLogShow($"{good.Key}号通道出料完成"); | |||||
} | |||||
} | |||||
public override void ReadData() | |||||
{ | |||||
GetStatus("M10.0", new Action<object>((obj) => | |||||
{ | |||||
if (obj is bool[] bools && bools.Length > 0 ) | |||||
{ | |||||
morkMoc.OutMaterailCompelete = bools[0]; | |||||
} | |||||
})); | |||||
} | |||||
public override void ResetProgram() | |||||
{ | |||||
throw new NotImplementedException(); | |||||
} | |||||
public override void SimOrder() | |||||
{ | |||||
throw new NotImplementedException(); | |||||
} | |||||
public override void Stop() | |||||
{ | |||||
throw new NotImplementedException(); | |||||
} | |||||
private void GetStatus(string key, Action<object> action) | |||||
{ | |||||
if (peripheralStatus.ContainsKey(key)) | |||||
{ | |||||
if (peripheralStatus[key] != null) | |||||
{ | |||||
action?.Invoke(peripheralStatus[key]); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,26 @@ | |||||
using BPASmartClient.Model; | |||||
using System; | |||||
using System.Collections.Concurrent; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
namespace BPASmartClient.MorkMOC | |||||
{ | |||||
public class GVL_MorkMOC | |||||
{ | |||||
/// <summary> | |||||
/// 订单队列 | |||||
/// </summary> | |||||
public ConcurrentQueue<OrderLocInfo> morkOrderPushes = new ConcurrentQueue<OrderLocInfo>(); | |||||
/// <summary> | |||||
/// 订单暂存列表 | |||||
/// </summary> | |||||
public List<DoOrderEvent> doOrderEvents { get; set; } = new List<DoOrderEvent>(); | |||||
public bool OutMaterailCompelete = false; | |||||
} | |||||
} |
@@ -0,0 +1,16 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace BPASmartClient.MorkMOC | |||||
{ | |||||
public class OrderLocInfo | |||||
{ | |||||
public string SuborderId { get; set; } | |||||
public ushort RecipeNumber { get; set; } | |||||
public string GoodName { get; set; } | |||||
public Dictionary<int, int> GoodPushes { get; set; } | |||||
} | |||||
} |
@@ -0,0 +1,52 @@ | |||||
using BPASmartClient.Helper; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Data; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
namespace BPASmartClient.MorkMOC | |||||
{ | |||||
public class PolymerBatching | |||||
{ | |||||
public List<PLCData> plcData = new List<PLCData>(); | |||||
public PolymerBatching() | |||||
{ | |||||
plcData.Add(new PLCData { Positon = 1,WeightVar = "VW200", StartUpVar = "M4.0" }); | |||||
plcData.Add(new PLCData { Positon = 2, WeightVar = "VW202", StartUpVar = "M4.1" }); | |||||
plcData.Add(new PLCData { Positon = 3, WeightVar = "VW204", StartUpVar = "M4.2" }); | |||||
plcData.Add(new PLCData { Positon = 4, WeightVar = "VW206", StartUpVar = "M4.3" }); | |||||
plcData.Add(new PLCData { Positon = 5, WeightVar = "VW208", StartUpVar = "M4.4" }); | |||||
plcData.Add(new PLCData { Positon = 6, WeightVar = "VW210", StartUpVar = "M4.5" }); | |||||
plcData.Add(new PLCData { Positon = 7, WeightVar = "VW212", StartUpVar = "M4.6" }); | |||||
plcData.Add(new PLCData { Positon = 8, WeightVar = "VW214", StartUpVar = "M4.7" }); | |||||
plcData.Add(new PLCData { Positon = 9, WeightVar = "VW216", StartUpVar = "M5.0" }); | |||||
plcData.Add(new PLCData { Positon = 10, WeightVar = "VW218", StartUpVar = "M5.1" }); | |||||
plcData.Add(new PLCData { Positon = 11, WeightVar = "VW220", StartUpVar = "M5.2" }); | |||||
plcData.Add(new PLCData { Positon = 12, WeightVar = "VW222", StartUpVar = "M5.3" }); | |||||
plcData.Add(new PLCData { Positon = 13, WeightVar = "VW224", StartUpVar = "M5.4" }); | |||||
plcData.Add(new PLCData { Positon = 14, WeightVar = "VW226", StartUpVar = "M5.5" }); | |||||
} | |||||
} | |||||
public class PLCData | |||||
{ | |||||
/// <summary> | |||||
/// 通道位置 | |||||
/// </summary> | |||||
public int Positon; | |||||
/// <summary> | |||||
/// PLC通道重量点位 | |||||
/// </summary> | |||||
public string WeightVar; | |||||
/// <summary> | |||||
/// PLC通道启动点位 | |||||
/// </summary> | |||||
public string StartUpVar; | |||||
} | |||||
} |
@@ -6,7 +6,7 @@ | |||||
xmlns:local="clr-namespace:PermissionManagement" | xmlns:local="clr-namespace:PermissionManagement" | ||||
mc:Ignorable="d" | mc:Ignorable="d" | ||||
Title="MainWindow" Height="450" Width="800" WindowStartupLocation="CenterScreen" WindowStyle="None" AllowsTransparency="True" > | Title="MainWindow" Height="450" Width="800" WindowStartupLocation="CenterScreen" WindowStyle="None" AllowsTransparency="True" > | ||||
<Grid Background=""> | |||||
<Grid > | |||||
</Grid> | </Grid> | ||||
</Window> | </Window> |
@@ -176,6 +176,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.UserManagement", " | |||||
EndProject | EndProject | ||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.PageLoad", "BPASmart.PageLoad\BPASmart.PageLoad.csproj", "{2DB084E8-B951-4D71-A203-FD0902EBA2C6}" | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.PageLoad", "BPASmart.PageLoad\BPASmart.PageLoad.csproj", "{2DB084E8-B951-4D71-A203-FD0902EBA2C6}" | ||||
EndProject | EndProject | ||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BPASmart.CustomResource", "BPASmart.CustomResource\BPASmart.CustomResource.csproj", "{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}" | |||||
EndProject | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HK-Advertisement", "..\..\TEST\HK-Advertisement\HK-Advertisement.csproj", "{CE98BFD2-9D96-4AB4-A727-662BB341200C}" | |||||
EndProject | |||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BPASmartClient.MorkMOC", "BPASmartClient.MorkMOC\BPASmartClient.MorkMOC.csproj", "{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}" | |||||
EndProject | |||||
Global | Global | ||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
Debug|Any CPU = Debug|Any CPU | Debug|Any CPU = Debug|Any CPU | ||||
@@ -1630,6 +1636,66 @@ Global | |||||
{2DB084E8-B951-4D71-A203-FD0902EBA2C6}.Release|x64.Build.0 = Release|Any CPU | {2DB084E8-B951-4D71-A203-FD0902EBA2C6}.Release|x64.Build.0 = Release|Any CPU | ||||
{2DB084E8-B951-4D71-A203-FD0902EBA2C6}.Release|x86.ActiveCfg = Release|Any CPU | {2DB084E8-B951-4D71-A203-FD0902EBA2C6}.Release|x86.ActiveCfg = Release|Any CPU | ||||
{2DB084E8-B951-4D71-A203-FD0902EBA2C6}.Release|x86.Build.0 = Release|Any CPU | {2DB084E8-B951-4D71-A203-FD0902EBA2C6}.Release|x86.Build.0 = Release|Any CPU | ||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|ARM64.ActiveCfg = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|ARM64.Build.0 = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|ARM.Build.0 = Release|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|ARM64.ActiveCfg = Release|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|ARM64.Build.0 = Release|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x64.Build.0 = Release|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3}.Release|x86.Build.0 = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|ARM64.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|ARM64.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|ARM.Build.0 = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|ARM64.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|ARM64.Build.0 = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|x64.Build.0 = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{CE98BFD2-9D96-4AB4-A727-662BB341200C}.Release|x86.Build.0 = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM.Build.0 = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM64.ActiveCfg = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|ARM64.Build.0 = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x64.ActiveCfg = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x64.Build.0 = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x86.ActiveCfg = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Debug|x86.Build.0 = Debug|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM.ActiveCfg = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM.Build.0 = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM64.ActiveCfg = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|ARM64.Build.0 = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x64.ActiveCfg = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x64.Build.0 = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x86.ActiveCfg = Release|Any CPU | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2}.Release|x86.Build.0 = Release|Any CPU | |||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(SolutionProperties) = preSolution | GlobalSection(SolutionProperties) = preSolution | ||||
HideSolutionNode = FALSE | HideSolutionNode = FALSE | ||||
@@ -1711,6 +1777,8 @@ Global | |||||
{897F8379-3301-4CBE-9BCA-AF7FD2F963A9} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | {897F8379-3301-4CBE-9BCA-AF7FD2F963A9} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | ||||
{06F30619-AD37-4CA0-838F-0431867E0932} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | {06F30619-AD37-4CA0-838F-0431867E0932} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | ||||
{2DB084E8-B951-4D71-A203-FD0902EBA2C6} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | {2DB084E8-B951-4D71-A203-FD0902EBA2C6} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | ||||
{E7CC45BF-7393-4BA7-A9AD-B1A1F5B265F3} = {CDC1E762-5E1D-4AE1-9DF2-B85761539086} | |||||
{D5081D7B-3EBB-42C7-8FB9-A889870D08C2} = {9FB27073-61A0-4FE3-94DB-5FDDE062332F} | |||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(ExtensibilityGlobals) = postSolution | GlobalSection(ExtensibilityGlobals) = postSolution | ||||
SolutionGuid = {9AEC9B81-0222-4DE9-B642-D915C29222AC} | SolutionGuid = {9AEC9B81-0222-4DE9-B642-D915C29222AC} | ||||