我正在使用Surface SDK进行多点触控支持。我需要同时移动2个滑块......
我已经创建了一些SurfaceSlider,效果很好,除了控件在移动后做了一些惯性...
有没有办法禁用惯性?我在网上搜索过,但没有找到任何东西......他们没有提供选项或类似的东西......
如果您需要更多信息来解决我的问题,请告诉我......
由于
更新: 我试图像这样制作自己的滑块,但它不起作用......
public class WtoSurfaceSlider : SurfaceSlider
{
#region " Ctors "
static WtoSurfaceSlider()
{
// Override metadata with style defined in themes xaml
DefaultStyleKeyProperty.OverrideMetadata(typeof(WtoSurfaceSlider), new FrameworkPropertyMetadata(typeof(WtoSurfaceSlider)));
}
public WtoSurfaceSlider()
{
Name = "New" + GetType().Name;
}
#endregion
#region " Method "
protected override void OnManipulationDelta(ManipulationDeltaEventArgs e)
{
if (e.IsInertial)
{
e.Complete();
e.Handled = true;
}
}
#endregion
}
修改
最后,我在Eli Arbel的评论中找到了答案。我在资源xaml文件中声明我的SurfaceSlider,所以我没有.cs。 所以这对我来说很好:
public class WtoSurfaceThumb : SurfaceThumb
{
#region " Ctors "
static WtoSurfaceThumb()
{
// Override metadata with style defined in themes xaml
DefaultStyleKeyProperty.OverrideMetadata(typeof(WtoSurfaceThumb), new FrameworkPropertyMetadata(typeof(WtoSurfaceThumb)));
}
public WtoSurfaceThumb()
{
Name = "New" + GetType().Name;
PreviewFlicked += new FlickEventHandler(WtoSurfaceThumb_PreviewFlicked);
}
#endregion
#region " Method "
private void WtoSurfaceThumb_PreviewFlicked(object sender, FlickEventArgs e)
{
e.Handled = true;
}
#endregion
}
我用WtoSurfaceThumb取代了我应用中的所有SurfaceThumb。
答案 0 :(得分:2)
您可以使用以下活动:
<s:SurfaceSlider s:SurfaceThumb.PreviewFlicked="OnPreviewFlicked" />
并将其标记为已处理:
private void OnPreviewFlicked(object sender, FlickEventArgs e)
{
e.Handled = true;
}
作为旁注 - 如果您不需要轻弹功能,可以使用普通滑块。多点触控内置于WPF 4中。
答案 1 :(得分:0)