Files
BeWoPlaner/BeWo/View/PercentageDisplay.xaml.cs
2016-06-27 01:45:38 +02:00

60 lines
1.9 KiB
C#

using System;
using System.Windows;
using System.Windows.Controls;
namespace BeWo.View
{
public partial class PercentageDisplay : UserControl
{
public static readonly DependencyProperty PercentageProperty = DependencyProperty.Register("Percentage", typeof(decimal), typeof(PercentageDisplay), new UIPropertyMetadata(0m, OnPercentageChanged));
public PercentageDisplay()
{
this.InitializeComponent();
this.Loaded += (s, e) => this.Refresh(this.Percentage);
}
public decimal Percentage
{
get
{
return (decimal)this.GetValue(PercentageProperty);
}
set
{
this.SetValue(PercentageProperty, value);
}
}
private static void OnPercentageChanged(object sender, DependencyPropertyChangedEventArgs e)
{
PercentageDisplay lControl = sender as PercentageDisplay;
if (lControl.IsLoaded)
{
lControl.Refresh((decimal)e.NewValue);
}
}
private void Refresh(decimal lValue)
{
if (lValue > 100)
{
this.bar_to100.Visibility = Visibility.Collapsed;
this.grid_twoBars.ColumnDefinitions[1].Width = new GridLength(Convert.ToDouble(lValue - 100), GridUnitType.Star);
this.grid_twoBars.Children.Clear();
this.grid_twoBars.Children.Add(this.leftBar);
this.grid_twoBars.Children.Add(this.rightBar);
}
else
{
this.bar_to100.Visibility = Visibility.Visible;
this.bar_to100.Value = Convert.ToDouble(lValue);
}
this.textblock_percent.Text = string.Format("{0:0.00}%", lValue);
}
}
}