// Copyright (c) Richasy. All rights reserved.
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace Richasy.Bili.App.Controls
{
///
/// 卡片容器,包含基本的Pointer动画.
///
public class CardPanel : Button
{
private long _pointerOverToken;
private long _pressedToken;
///
/// Initializes a new instance of the class.
///
public CardPanel()
{
this.DefaultStyleKey = typeof(CardPanel);
Loading += OnCardPanelLoading;
Unloaded += OnCardPanelUnloaded;
}
///
protected override void OnApplyTemplate() => base.OnApplyTemplate();
private void OnCardPanelLoading(FrameworkElement sender, object args)
{
_pointerOverToken = RegisterPropertyChangedCallback(IsPointerOverProperty, OnPanelStateChanged);
_pressedToken = RegisterPropertyChangedCallback(IsPressedProperty, OnPanelStateChanged);
}
private void OnCardPanelUnloaded(object sender, RoutedEventArgs e)
{
UnregisterPropertyChangedCallback(IsPointerOverProperty, _pointerOverToken);
UnregisterPropertyChangedCallback(IsPressedProperty, _pressedToken);
}
private void OnPanelStateChanged(DependencyObject sender, DependencyProperty dp)
{
if (IsPressed)
{
}
else if (IsPointerOver)
{
}
else
{
}
}
}
}