: ekranı uygulama boyutlandırılır bir mesaj
öyle bunu tetikleyicilerle yapmak mümkün mü?
public enum LayoutStateType
{
TooSmall, BigEnough
}
public class LayoutTrigger : StateTriggerBase
{
public static readonly DependencyProperty MinimalStateWidthProperty = DependencyProperty.Register("MinimalStateWidth", typeof(double), typeof(LayoutTrigger), new PropertyMetadata(600.0, OnTriggerPropertyChanged));
public static readonly DependencyProperty LayoutStateProperty = DependencyProperty.Register("LayoutState", typeof(LayoutStateType), typeof(LayoutTrigger), new PropertyMetadata(LayoutStateType.Landscape, OnTriggerPropertyChanged));
public LayoutTrigger()
{
Window.Current.SizeChanged += Window_SizeChanged;
UpdateTrigger();
}
public double MinimalStateWidth
{
get
{
return (double)GetValue(MinimalStateWidthProperty);
}
set
{
SetValue(MinimalStateWidthProperty, value);
}
}
public LayoutStateType LayoutState
{
get
{
return (LayoutStateType)GetValue(LayoutStateProperty);
}
set
{
SetValue(LayoutStateProperty, value);
}
}
private static void OnTriggerPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var trigger = d as LayoutTrigger;
trigger.UpdateTrigger();
}
private void Window_SizeChanged(object sender, WindowSizeChangedEventArgs e)
{
UpdateTrigger();
}
private void UpdateTrigger()
{
switch (LayoutState)
{
case LayoutStateType.TooSmall:
if (Window.Current.Bounds.Width <= MinimalStateWidth)
{
SetActive(true);
}
else
{
SetActive(false);
}
break;
case LayoutStateType.BigEnough:
default:
if (Window.Current.Bounds.Width > MinimalStateWidth)
{
SetActive(false);
}
else
{
SetActive(true);
}
break;
}
}
}
Sen görsel durumlarını ayarlamak için bu durum tetikleyici kullanabilirsiniz: Bunun için özel bir StateTrigger oluşturabilir yardımıyla
Teşekkürler Jerin Cevabınız için: D – Jina