c# - 默认情况下,WPF 自定义用户控件是否已启用多点触控操作

标签 c# wpf xaml multi-touch awesomium

我正在创建基于 Awesonium 的多点触控浏览器。为此,我使用 Awesomium Web 控件 和一些其他控件创建了新的用户控件。我设置了这个属性:IsManipulationEnabled="True" 关于本文with is here ,我已经重写了这个函数:

protected override void OnManipulationDelta(ManipulationDeltaEventArgs e)
{
    UIElement element = e.Source as UIElement;
    MatrixTransform xform =
        element.RenderTransform as MatrixTransform;
    Matrix matrix = xform.Matrix;
    ManipulationDelta delta = e.DeltaManipulation;
    Point center = e.ManipulationOrigin;
    matrix.ScaleAt(
        delta.Scale.X, delta.Scale.Y, center.X, center.Y);
    matrix.RotateAt(
        delta.Rotation, center.X, center.Y);
    matrix.Translate(
        delta.Translation.X, delta.Translation.Y);
    xform.Matrix = matrix;
    e.Handled = true;
    base.OnManipulationDelta(e);
}

但操作不适用于 Ui 元素。用户控件XAML代码:

<UserControl
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:awe="http://schemas.awesomium.com/winfx" x:Class="WebControlTouch.WebBrowser" 
         mc:Ignorable="d" 
         d:DesignHeight="600" d:DesignWidth="800">
<Grid>

    <awe:WebControl HorizontalAlignment="Left" Margin="0,58,0,0" VerticalAlignment="Top" Width="790" Name="_browser" AddressChanged="_browser_AddressChanged"/>
    <TextBox HorizontalAlignment="Left" Name="_addressBar" Height="43" Margin="0,10,0,0" TextWrapping="Wrap" Text="Address" VerticalAlignment="Top" Width="335"/>
    <Button Content="Go!" HorizontalAlignment="Left" Margin="340,10,0,0" VerticalAlignment="Top" Width="133" RenderTransformOrigin="-0.164,0.514" Height="43" Click="Button_Click"/>

</Grid>

我应该怎么做才能使操作起作用?

最佳答案

我不知道你是否解决了这个问题,但是在你的用户控件中你没有设置下面的代码
IsManipulationEnabled="True"

我不知道你在哪里设置这个属性,但你需要在 UserControl 标签中设置它

关于c# - 默认情况下,WPF 自定义用户控件是否已启用多点触控操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25015290/

相关文章:

c# - .Net 数据结构 : ArrayList, List、HashTable、Dictionary、SortedList、SortedDictionary——速度、内存以及何时使用它们?

c# - 如何将点击事件重新路由为双击?

wpf - 基于枚举为数据模板选择用户控件

c# - 具有静态列名称的 GridView 表

c# - 如何从 MahApps.Metro 将带有操作的按钮添加到 ShowInputAsync

c# - 从 List<Dictionary<string, long>> 中查找值

c# - 使用 C# 和 BizTalk 将 Excel (xlsx) 转换为 XML

c# - 正在改变枚举的基础类型打破 wcf 契约(Contract)的变化?

wpf - Visual Studio 2010中的WPF设计器要好得多?

c# - 为什么我不能在 XAML 中定义带有转换的几何图形?