using InABox.Wpf;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
namespace InABox.DynamicGrid
{
///
/// Interaction logic for FormDesignerLength.xaml
///
public partial class DynamicFormDesignLength : ThemableWindow
{
private readonly Dictionary types = new()
{
{ GridUnitType.Auto, "Auto" },
{ GridUnitType.Pixel, "Pixels" },
{ GridUnitType.Star, "Percentage" }
};
public DynamicFormDesignLength(GridLength length)
{
InitializeComponent();
Type.ItemsSource = types;
GridLength = length;
}
public GridLength GridLength
{
get => new(Value.Value.Value, (GridUnitType)Type.SelectedValue);
set
{
Type.SelectedValue = value.GridUnitType;
Value.Value = value.Value;
}
}
private void OKClick(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
private void CancelClick(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
private void Type_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var newvalue = e.AddedItems.Count > 0 ? ((KeyValuePair)e.AddedItems[0]).Key : GridUnitType.Auto;
//var oldvalue = e.RemovedItems.Count > 0 ? ((KeyValuePair)e.RemovedItems[0]).Key : GridUnitType.Auto;
if (newvalue == GridUnitType.Star)
{
Value.Value = 1.0F;
Value.IsReadOnly = false;
}
else if (newvalue == GridUnitType.Auto)
{
Value.Value = 1.0F;
Value.IsReadOnly = true;
}
else if (newvalue == GridUnitType.Pixel)
{
Value.Value = 50.0F;
Value.IsReadOnly = false;
}
}
}
}