|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Data;
namespace CBR.Components.Converters
{
/// <summary>
/// Converter : Boolean to System.Windows.Visibility and not revert
/// </summary>
[ValueConversion(typeof(bool), typeof(System.Windows.WindowState))]
public class BoolToWindowStateConverter : IValueConverter
{
/// <summary>
/// Singleton access
/// </summary>
public static readonly BoolToWindowStateConverter Instance = new BoolToWindowStateConverter();
/// <summary>
/// Private constructor for singleton pattern
/// </summary>
private BoolToWindowStateConverter()
{
}
/// <summary>
/// IValueConverter.Convert
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool val = false;
bool param = true;
if (value != null)
val = (bool)value;
if (parameter != null)
param = System.Convert.ToBoolean(parameter);
if (val)
{
// allow to test on !value, that is not possible in the binding
if( param == true )
return System.Windows.WindowState.Maximized;
else
return System.Windows.WindowState.Normal;
}
else
{
if (param == true)
return System.Windows.WindowState.Normal;
else
return System.Windows.WindowState.Maximized;
}
}
/// <summary>
/// IValueConverter.ConvertBack
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
System.Windows.WindowState val = (System.Windows.WindowState)value;
if (val == System.Windows.WindowState.Maximized)
{
return true;
}
else
{
return false;
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
WPF and MVVM fan, I practice C # in all its forms from the beginning of the NET Framework without mentioning C ++ / MFC and other software packages such as databases, ASP, WCF, Web & Windows services, Application, and now Core and UWP.
In my wasted hours, I am guilty of having fathered C.B.R. and its cousins C.B.R. for WinRT and UWP on the Windows store.
But apart from that, I am a great handyman ... the house, a rocket stove to heat the jacuzzi and the last one: a wood oven for pizza, bread, and everything that goes inside
https://guillaumewaser.wordpress.com/
https://fouretcompagnie.wordpress.com/