Browse Source

增加矩阵与圆形

样式分支
fyf 2 years ago
parent
commit
60b9dc9590
6 changed files with 78 additions and 26 deletions
  1. +3
    -2
      BPASmartClient.SCADAControl/CustomerControls/TheEllipse.xaml
  2. +31
    -9
      BPASmartClient.SCADAControl/CustomerControls/TheEllipse.xaml.cs
  3. +8
    -6
      BPASmartClient.SCADAControl/CustomerControls/TheRectangle.xaml
  4. +28
    -9
      BPASmartClient.SCADAControl/CustomerControls/TheRectangle.xaml.cs
  5. +3
    -0
      BeDesignerSCADA/Controls/MainCanvasPanel.xaml
  6. +5
    -0
      BeDesignerSCADA/Themes/Styles.xaml

+ 3
- 2
BPASmartClient.SCADAControl/CustomerControls/TheEllipse.xaml View File

@@ -9,11 +9,12 @@
Foreground="#FF00EDFF" Foreground="#FF00EDFF"
BorderBrush="Transparent" BorderBrush="Transparent"
BorderThickness="4" BorderThickness="4"
d:DesignHeight="450" d:DesignWidth="800">
d:DesignHeight="800" d:DesignWidth="800">
<Ellipse Tag="Ellipse" <Ellipse Tag="Ellipse"
Fill="{Binding ElementName=root,Path=BJColor,Mode=TwoWay}" Fill="{Binding ElementName=root,Path=BJColor,Mode=TwoWay}"
Stroke="{Binding ElementName=root,Path=Foreground}" Stroke="{Binding ElementName=root,Path=Foreground}"
StrokeThickness="{Binding ElementName=root,Path=BorderThickness}"
StrokeThickness="{Binding ElementName=root,Path=BKThickness}"
StrokeDashArray="{Binding ElementName=root,Path=DoubleArray,Mode=TwoWay}"
> >
</Ellipse> </Ellipse>


+ 31
- 9
BPASmartClient.SCADAControl/CustomerControls/TheEllipse.xaml.cs View File

@@ -1,6 +1,7 @@
using BPASmartClient.Compiler; using BPASmartClient.Compiler;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -70,14 +71,15 @@ namespace BPASmartClient.SCADAControl.CustomerControls
Width = 80; Width = 80;
Height = 80; Height = 80;
} }
BKStrokeDashArray.CollectionChanged += BKStrokeDashArray_CollectionChanged;
} }
public bool IsCheckedColor

private void BKStrokeDashArray_CollectionChanged(object? sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{ {
get { return (bool)GetValue(IsCheckedProperty); }
set { SetValue(IsCheckedProperty, value); }
Refresh();
} }
public static readonly DependencyProperty IsCheckedProperty =
DependencyProperty.Register("IsChecked", typeof(bool), typeof(TheEllipse), new PropertyMetadata(false, new PropertyChangedCallback(OnPropertyChanged)));
public Brush BJColor public Brush BJColor
{ {
get { return (Brush)GetValue(BJColorProperty); } get { return (Brush)GetValue(BJColorProperty); }
@@ -85,16 +87,36 @@ namespace BPASmartClient.SCADAControl.CustomerControls
} }
public static readonly DependencyProperty BJColorProperty = public static readonly DependencyProperty BJColorProperty =
DependencyProperty.Register("BJColor", typeof(Brush), typeof(TheEllipse), new PropertyMetadata(new SolidColorBrush(Colors.Transparent))); DependencyProperty.Register("BJColor", typeof(Brush), typeof(TheEllipse), new PropertyMetadata(new SolidColorBrush(Colors.Transparent)));
public double BKThickness
{
get { return (double)GetValue(BKThicknessProperty); }
set { SetValue(BKThicknessProperty, value); }
}
public static readonly DependencyProperty BKThicknessProperty =
DependencyProperty.Register("BKThickness", typeof(double), typeof(TheEllipse), new PropertyMetadata(1.0));
public ObservableCollection<double> BKStrokeDashArray
{
get { return (ObservableCollection<double>)GetValue(BKStrokeDashArrayProperty); }
set { SetValue(BKStrokeDashArrayProperty, value); }
}
public static readonly DependencyProperty BKStrokeDashArrayProperty =
DependencyProperty.Register("BKStrokeDashArray", typeof(ObservableCollection<double>), typeof(TheEllipse), new PropertyMetadata(new ObservableCollection<double>(),new PropertyChangedCallback(OnPropertyChanged)));
public DoubleCollection DoubleArray
{
get { return (DoubleCollection)GetValue(DoubleArrayProperty); }
set { SetValue(DoubleArrayProperty, value); }
}
public static readonly DependencyProperty DoubleArrayProperty =
DependencyProperty.Register("DoubleArray", typeof(DoubleCollection), typeof(TheEllipse), new PropertyMetadata(new DoubleCollection()));


private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{ {
(d as TheEllipse)?.Refresh(); (d as TheEllipse)?.Refresh();
} }
private void Refresh() private void Refresh()
{ {
//if (LeftTog != null)
//{
// LeftTog.Fill = IsCheckedColor ? new SolidColorBrush(Colors.Transparent) : this.Foreground;
//}
DoubleArray = new DoubleCollection(BKStrokeDashArray);
} }
public event EventHandler PropertyChange; //声明一个事件 public event EventHandler PropertyChange; //声明一个事件
public string ControlType => "控件"; public string ControlType => "控件";


+ 8
- 6
BPASmartClient.SCADAControl/CustomerControls/TheRectangle.xaml View File

@@ -11,10 +11,12 @@
BorderThickness="4" BorderThickness="4"
Tag="10" Tag="10"
d:DesignHeight="450" d:DesignWidth="800"> d:DesignHeight="450" d:DesignWidth="800">
<Border Tag="border"
Background="{Binding ElementName=root,Path=BJColor,Mode=TwoWay}"
BorderBrush="{Binding ElementName=root,Path=Foreground}"
BorderThickness="{Binding ElementName=root,Path=BorderThickness}"
CornerRadius="{Binding ElementName=root,Path=Tag}"
/>
<Rectangle Tag="border"
Fill="{Binding ElementName=root,Path=BJColor,Mode=TwoWay}"
Stroke="{Binding ElementName=root,Path=Foreground}"
StrokeThickness="{Binding ElementName=root,Path=BKThickness}"
StrokeDashArray="{Binding ElementName=root,Path=DoubleArray,Mode=TwoWay}"
>
</Rectangle>
</UserControl> </UserControl>

+ 28
- 9
BPASmartClient.SCADAControl/CustomerControls/TheRectangle.xaml.cs View File

@@ -1,6 +1,7 @@
using BPASmartClient.Compiler; using BPASmartClient.Compiler;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -70,24 +71,20 @@ namespace BPASmartClient.SCADAControl.CustomerControls
Width = 80; Width = 80;
Height = 80; Height = 80;
} }
BKStrokeDashArray.CollectionChanged += BKStrokeDashArray_CollectionChanged;
} }
public bool IsCheckedColor
private void BKStrokeDashArray_CollectionChanged(object? sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{ {
get { return (bool)GetValue(IsCheckedProperty); }
set { SetValue(IsCheckedProperty, value); }
Refresh();
} }
public static readonly DependencyProperty IsCheckedProperty =
DependencyProperty.Register("IsChecked", typeof(bool), typeof(TheRectangle), new PropertyMetadata(false, new PropertyChangedCallback(OnPropertyChanged)));
private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{ {
(d as TheRectangle)?.Refresh(); (d as TheRectangle)?.Refresh();
} }
private void Refresh() private void Refresh()
{ {
if (LeftTog != null)
{
LeftTog.Background = IsCheckedColor ? new SolidColorBrush(Colors.Transparent) : this.Foreground;
}
DoubleArray = new DoubleCollection(BKStrokeDashArray);
} }


public Brush BJColor public Brush BJColor
@@ -97,6 +94,28 @@ namespace BPASmartClient.SCADAControl.CustomerControls
} }
public static readonly DependencyProperty BJColorProperty = public static readonly DependencyProperty BJColorProperty =
DependencyProperty.Register("BJColor", typeof(Brush), typeof(TheRectangle), new PropertyMetadata(new SolidColorBrush(Colors.Transparent))); DependencyProperty.Register("BJColor", typeof(Brush), typeof(TheRectangle), new PropertyMetadata(new SolidColorBrush(Colors.Transparent)));
public double BKThickness
{
get { return (double)GetValue(BKThicknessProperty); }
set { SetValue(BKThicknessProperty, value); }
}
public static readonly DependencyProperty BKThicknessProperty =
DependencyProperty.Register("BKThickness", typeof(double), typeof(TheRectangle), new PropertyMetadata(1.0));
public ObservableCollection<double> BKStrokeDashArray
{
get { return (ObservableCollection<double>)GetValue(BKStrokeDashArrayProperty); }
set { SetValue(BKStrokeDashArrayProperty, value); }
}
public static readonly DependencyProperty BKStrokeDashArrayProperty =
DependencyProperty.Register("BKStrokeDashArray", typeof(ObservableCollection<double>), typeof(TheRectangle), new PropertyMetadata(new ObservableCollection<double>(), new PropertyChangedCallback(OnPropertyChanged)));
public DoubleCollection DoubleArray
{
get { return (DoubleCollection)GetValue(DoubleArrayProperty); }
set { SetValue(DoubleArrayProperty, value); }
}
public static readonly DependencyProperty DoubleArrayProperty =
DependencyProperty.Register("DoubleArray", typeof(DoubleCollection), typeof(TheRectangle), new PropertyMetadata(new DoubleCollection()));

public event EventHandler PropertyChange; //声明一个事件 public event EventHandler PropertyChange; //声明一个事件
public string ControlType => "控件"; public string ControlType => "控件";
private bool isExecuteState; private bool isExecuteState;


+ 3
- 0
BeDesignerSCADA/Controls/MainCanvasPanel.xaml View File

@@ -296,7 +296,10 @@
<mypro:PropertyDefinition DisplayName="前景色" Category="颜色设置" Name="Foreground"/> <mypro:PropertyDefinition DisplayName="前景色" Category="颜色设置" Name="Foreground"/>
<mypro:PropertyDefinition DisplayName="背景色" Category="颜色设置" Name="Background"/> <mypro:PropertyDefinition DisplayName="背景色" Category="颜色设置" Name="Background"/>
<mypro:PropertyDefinition DisplayName="填充颜色" Category="颜色设置" Name="BJColor"/> <mypro:PropertyDefinition DisplayName="填充颜色" Category="颜色设置" Name="BJColor"/>
<mypro:PropertyDefinition DisplayName="边框宽度" Category="基本属性" Name="BKThickness"/>
<mypro:PropertyDefinition DisplayName="虚线绘制" Category="基本属性" Name="BKStrokeDashArray"/>


<mypro:PropertyDefinition DisplayName="边框色" Category="颜色设置" Name="BorderBrush"/> <mypro:PropertyDefinition DisplayName="边框色" Category="颜色设置" Name="BorderBrush"/>
<mypro:PropertyDefinition DisplayName="填充" Category="基本属性" DisplayOrder="5" Name="WaveFill"/> <mypro:PropertyDefinition DisplayName="填充" Category="基本属性" DisplayOrder="5" Name="WaveFill"/>
<mypro:PropertyDefinition DisplayName="边框粗细" Category="基本属性" DisplayOrder="5" Name="WaveThickness"/> <mypro:PropertyDefinition DisplayName="边框粗细" Category="基本属性" DisplayOrder="5" Name="WaveThickness"/>


+ 5
- 0
BeDesignerSCADA/Themes/Styles.xaml View File

@@ -371,6 +371,11 @@
<Setter TargetName="txt" Property="Text" Value="圆形" /> <Setter TargetName="txt" Property="Text" Value="圆形" />
</DataTrigger> </DataTrigger>


<DataTrigger Binding="{Binding Name}" Value="TheWuLiaoControl">
<Setter TargetName="icon" Property="Kind" Value="AlphaGCircleOutline" />
<Setter TargetName="txt" Property="Text" Value="物料集合控件" />
</DataTrigger>

</DataTemplate.Triggers> </DataTemplate.Triggers>
</DataTemplate> </DataTemplate>




Loading…
Cancel
Save