本文整理汇总了C#中Control.Equals方法的典型用法代码示例。如果您正苦于以下问题:C# Control.Equals方法的具体用法?C# Control.Equals怎么用?C# Control.Equals使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Control
的用法示例。
在下文中一共展示了Control.Equals方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetupOrientationAwareControl
private static void SetupOrientationAwareControl(Control control, bool isActive)
{
#if WINDOWS_PHONE
var page = FindParentPage(control);
if (page == null)
return;
if (isActive)
{
//Add the orientation aware control to the list stored on the Page
if (GetOrientationAwareControls(page) == null)
{
SetOrientationAwareControls(page, new List<Control>());
//Start listening for changes
page.OrientationChanged += PageOnOrientationChanged;
}
if (!GetOrientationAwareControls(page).Contains(control))
GetOrientationAwareControls(page).Add(control);
UpdateOrientationAwareControls(new[] { control }, page.Orientation); //Update this control only
}
else
{
var orientationAwareControls = GetOrientationAwareControls(page);
if (orientationAwareControls != null)
{
if (orientationAwareControls.Contains(control))
{
orientationAwareControls.Remove(control);
control.Loaded -= OnControlLoaded;
}
//Do cleanup for this page if there are no more controls
if (!orientationAwareControls.Any())
{
SetOrientationAwareControls(page, null);
page.OrientationChanged -= PageOnOrientationChanged;
}
}
}
#else
if (isActive)
{
if (orientationAwareControls == null)
orientationAwareControls = new List<WeakReference>();
if (!GetOrientationAwareControls().Contains(control))
{
orientationAwareControls.Add(new WeakReference(control));
// Note: On the Windows 8 side, probably due to aggressive optimizations,
// if the control is not named then when changing orientations/view states any
// WeakReference to that control will show it as GCed!
// Disclaimer : I ONLY TESTED ON THE SIMULATOR!!
if (string.IsNullOrEmpty(control.Name))
{
control.Name = Guid.NewGuid().ToString();
}
control.Loaded += OnControlLoaded;
if (control.Parent != null)
{
UpdateOrientationAwareControls(new[] { control }, ApplicationView.Value);
}
}
if (GetOrientationAwareControls().Any())
{
//TODO: Handle Window changes (Closed)
Window.Current.SizeChanged += OnWindowSizeChanged;
}
}
else
{
if (GetOrientationAwareControls().Contains(control))
{
var controlWeakRef = orientationAwareControls.Single(weak => control.Equals(weak.Target));
orientationAwareControls.Remove(controlWeakRef);
control.Loaded -= OnControlLoaded;
}
if (!GetOrientationAwareControls().Any())
{
orientationAwareControls = null;
Window.Current.SizeChanged -= OnWindowSizeChanged;
}
}
#endif
}