using Panuon.WPF.UI;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Data;
|
using System.Windows.Documents;
|
using System.Windows.Input;
|
using System.Windows.Media;
|
using System.Windows.Media.Imaging;
|
using System.Windows.Shapes;
|
|
namespace Plugin.StandardTest
|
{
|
/// <summary>
|
/// ScreenTouchWin.xaml 的交互逻辑
|
/// </summary>
|
public partial class ScreenTouchWin : WindowX
|
{
|
private ScreenGrid screenGrid;
|
private ScreenTouch[] screens;
|
|
public ScreenTouchWin(ScreenTouch[] configs)
|
{
|
screenGrid = new ScreenGrid(1, configs.Length);
|
screens = new ScreenTouch[configs.Length];
|
InitializeComponent();
|
|
int space = 2 * (screens.Length + 1);
|
for (int i = 0; i < screens.Length; i++)
|
{
|
var screen = new ScreenTouch(configs[i].rows, configs[i].columns)
|
{
|
Width = Math.Max(Math.Floor((this.ActualHeight / 9 * 16 - space) / screens.Length), 0),
|
Height = Math.Max(Math.Floor((this.ActualHeight / 9 * 16 - space) / screens.Length / 16 * 9), 0)
|
};
|
|
screen.SetBinding(ScreenTouch.ValuesProperty, new Binding(nameof(ScreenTouch.Values)) { Source = configs[i], Mode = BindingMode.OneWay });
|
|
screens[i] = screen;
|
screenGrid.AddScreen(screen, 0, i);
|
}
|
|
grid.Children.Add(screenGrid);
|
}
|
|
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
|
{
|
if (screenGrid == null)
|
{
|
return;
|
}
|
int space = 2 * (screens.Length + 1);
|
|
for (int i = 0; i < screens.Length; i++)
|
{
|
var screen = screens[i];
|
screen.Width = Math.Max(Math.Floor((this.ActualHeight / 9 * 16 - space) / screens.Length), 0);
|
screen.Height = Math.Max(Math.Floor((this.ActualHeight / 9 * 16 - space) / screens.Length / 16 * 9), 0);
|
}
|
}
|
}
|
}
|