Files
DynamicDataDisplay/Charts/ViewportPanel.Properties.cs
2024-02-23 00:46:06 -05:00

298 lines
8.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.ComponentModel;
namespace Microsoft.Research.DynamicDataDisplay.Charts
{
public partial class ViewportPanel
{
#region Properties
#region ViewportBounds
[AttachedPropertyBrowsableForChildren]
public static DataRect GetViewportBounds(DependencyObject obj)
{
return (DataRect)obj.GetValue(ViewportBoundsProperty);
}
public static void SetViewportBounds(DependencyObject obj, DataRect value)
{
obj.SetValue(ViewportBoundsProperty, value);
}
public static readonly DependencyProperty ViewportBoundsProperty = DependencyProperty.RegisterAttached(
"ViewportBounds",
typeof(DataRect),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(DataRect.Empty, OnLayoutPropertyChanged));
#endregion
#region X
[AttachedPropertyBrowsableForChildren]
public static double GetX(DependencyObject obj)
{
return (double)obj.GetValue(XProperty);
}
public static void SetX(DependencyObject obj, double value)
{
obj.SetValue(XProperty, value);
}
public static readonly DependencyProperty XProperty = DependencyProperty.RegisterAttached(
"X",
typeof(double),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(Double.NaN, OnLayoutPropertyChanged));
#endregion
#region Y
[AttachedPropertyBrowsableForChildren]
public static double GetY(DependencyObject obj)
{
return (double)obj.GetValue(YProperty);
}
public static void SetY(DependencyObject obj, double value)
{
obj.SetValue(YProperty, value);
}
public static readonly DependencyProperty YProperty = DependencyProperty.RegisterAttached(
"Y",
typeof(double),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(Double.NaN, OnLayoutPropertyChanged));
#endregion
#region ViewportWidth
[AttachedPropertyBrowsableForChildren]
public static double GetViewportWidth(DependencyObject obj)
{
return (double)obj.GetValue(ViewportWidthProperty);
}
public static void SetViewportWidth(DependencyObject obj, double value)
{
obj.SetValue(ViewportWidthProperty, value);
}
public static readonly DependencyProperty ViewportWidthProperty = DependencyProperty.RegisterAttached(
"ViewportWidth",
typeof(double),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(Double.NaN, OnLayoutPropertyChanged));
#endregion
#region ViewportHeight
[AttachedPropertyBrowsableForChildren]
public static double GetViewportHeight(DependencyObject obj)
{
return (double)obj.GetValue(ViewportHeightProperty);
}
public static void SetViewportHeight(DependencyObject obj, double value)
{
obj.SetValue(ViewportHeightProperty, value);
}
public static readonly DependencyProperty ViewportHeightProperty = DependencyProperty.RegisterAttached(
"ViewportHeight",
typeof(double),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(Double.NaN, OnLayoutPropertyChanged));
#endregion
#region ScreenOffsetX
[AttachedPropertyBrowsableForChildren]
public static double GetScreenOffsetX(DependencyObject obj)
{
return (double)obj.GetValue(ScreenOffsetXProperty);
}
public static void SetScreenOffsetX(DependencyObject obj, double value)
{
obj.SetValue(ScreenOffsetXProperty, value);
}
public static readonly DependencyProperty ScreenOffsetXProperty = DependencyProperty.RegisterAttached(
"ScreenOffsetX",
typeof(double),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(Double.NaN, OnLayoutPropertyChanged));
#endregion
#region ScreenOffsetY
[AttachedPropertyBrowsableForChildren]
public static double GetScreenOffsetY(DependencyObject obj)
{
return (double)obj.GetValue(ScreenOffsetYProperty);
}
public static void SetScreenOffsetY(DependencyObject obj, double value)
{
obj.SetValue(ScreenOffsetYProperty, value);
}
public static readonly DependencyProperty ScreenOffsetYProperty = DependencyProperty.RegisterAttached(
"ScreenOffsetY",
typeof(double),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(Double.NaN, OnLayoutPropertyChanged));
#endregion
#region HorizontalAlignment
[AttachedPropertyBrowsableForChildren]
public static HorizontalAlignment GetViewportHorizontalAlignment(DependencyObject obj)
{
return (HorizontalAlignment)obj.GetValue(ViewportHorizontalAlignmentProperty);
}
public static void SetViewportHorizontalAlignment(DependencyObject obj, HorizontalAlignment value)
{
obj.SetValue(ViewportHorizontalAlignmentProperty, value);
}
public static readonly DependencyProperty ViewportHorizontalAlignmentProperty = DependencyProperty.RegisterAttached(
"ViewportHorizontalAlignment",
typeof(HorizontalAlignment),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(HorizontalAlignment.Center, OnLayoutPropertyChanged));
#endregion
#region VerticalAlignment
[AttachedPropertyBrowsableForChildren]
public static VerticalAlignment GetViewportVerticalAlignment(DependencyObject obj)
{
return (VerticalAlignment)obj.GetValue(ViewportVerticalAlignmentProperty);
}
public static void SetViewportVerticalAlignment(DependencyObject obj, VerticalAlignment value)
{
obj.SetValue(ViewportVerticalAlignmentProperty, value);
}
public static readonly DependencyProperty ViewportVerticalAlignmentProperty = DependencyProperty.RegisterAttached(
"ViewportVerticalAlignment",
typeof(VerticalAlignment),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(VerticalAlignment.Center, OnLayoutPropertyChanged));
#endregion
#region ActualViewportBounds
public static DataRect GetActualViewportBounds(DependencyObject obj)
{
return (DataRect)obj.GetValue(ActualViewportBoundsProperty);
}
public static void SetActualViewportBounds(DependencyObject obj, DataRect value)
{
obj.SetValue(ActualViewportBoundsProperty, value);
}
public static readonly DependencyProperty ActualViewportBoundsProperty = DependencyProperty.RegisterAttached(
"ActualViewportBounds",
typeof(DataRect),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(DataRect.Empty));
#endregion
#region PrevActualViewportBounds
[EditorBrowsable(EditorBrowsableState.Never)]
public static DataRect GetPrevActualViewportBounds(DependencyObject obj)
{
return (DataRect)obj.GetValue(PrevActualViewportBoundsProperty);
}
public static void SetPrevActualViewportBounds(DependencyObject obj, DataRect value)
{
obj.SetValue(PrevActualViewportBoundsProperty, value);
}
public static readonly DependencyProperty PrevActualViewportBoundsProperty = DependencyProperty.RegisterAttached(
"PrevActualViewportBounds",
typeof(DataRect),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(DataRect.Empty));
#endregion
#region MinScreenWidth
public static double GetMinScreenWidth(DependencyObject obj)
{
return (double)obj.GetValue(MinScreenWidthProperty);
}
public static void SetMinScreenWidth(DependencyObject obj, double value)
{
obj.SetValue(MinScreenWidthProperty, value);
}
public static readonly DependencyProperty MinScreenWidthProperty = DependencyProperty.RegisterAttached(
"MinScreenWidth",
typeof(double),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(Double.NaN, OnLayoutPropertyChanged));
#endregion // end of MinScreenWidth
protected static void OnLayoutPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
FrameworkElement uiElement = d as FrameworkElement;
if (uiElement != null)
{
ViewportPanel panel = VisualTreeHelper.GetParent(uiElement) as ViewportPanel;
if (panel != null)
{
// invalidating not self arrange, but calling Arrange method of only that uiElement which has changed position
panel.InvalidatePosition(uiElement);
}
}
}
#region IsMarkersHost
public bool IsMarkersHost
{
get { return (bool)GetValue(IsMarkersHostProperty); }
set { SetValue(IsMarkersHostProperty, value); }
}
public static readonly DependencyProperty IsMarkersHostProperty = DependencyProperty.Register(
"IsMarkersHost",
typeof(bool),
typeof(ViewportPanel),
new FrameworkPropertyMetadata(false));
#endregion // end of IsMarkersHost
#endregion
}
}