WP8.1的自定义中心控制
本文关键字:心控 控制 自定义 WP8 | 更新日期: 2023-09-27 18:18:45
我在理解Hub Control是如何构建的方面有一些问题。我想理解的主要思想是如何构建一个自定义控件,它允许执行一些手势,并且不会阻塞内部的控件。
使用Hub
控件,我可以按下Button
并查看其回调(颜色和大小变化),然后移动指针向左滑动Hub
控件。
很抱歉这是一个如此愚蠢的问题,但我没有足够的经验来自己找到任何答案。
主要问题与GestureRecognizer
的使用有关。我已经修复了我的问题,拒绝使用GestureRecognizer
,并开始在主容器上使用操纵事件。
<Style TargetType="my:CustomHub">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="my:CustomHub">
<Grid x:Name="RootGrid">
<ContentPresenter x:Name="MainPresenter"
Content="{TemplateBinding Content}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
控制的后台代码:public sealed class CustomHub
{
public FrameworkElement Container { get; set; }
public MainView()
{
this.InitializeComponent();
}
private void InitGestureInteraction()
{
this.Container = (FrameworkElement)GetTemplateChild("RootGrid");
this.Container.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateRailsX;
this.Container.ManipulationStarted += (s, e) =>
{
};
this.Container.ManipulationDelta += (s, e) =>
{
var x = e.Cumulative.Translation.X;
// implementation of moving
};
this.Container.ManipulationCompleted += (s, e) =>
{
var x = e.Cumulative.Translation.X;
// implementation of moving
};
}
}