SurfaceInkCanvas和ScatterView组合在一起?

时间:2011-01-28 15:05:28

标签: c# .net wpf pixelsense

我有以下布局:

<Grid Width="1024" Height="768" Background="{StaticResource WindowBackground}" >
        <Grid.RowDefinitions>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="auto"></RowDefinition>
        </Grid.RowDefinitions>

        <s:ScatterView Name="hitter">
            <s:ScatterViewItem Orientation="0" Width="100" Height="100"></s:ScatterViewItem>
            <s:ScatterViewItem Orientation="0" Width="100" Height="100"></s:ScatterViewItem>
            <s:ScatterViewItem Orientation="0" Width="100" Height="100"></s:ScatterViewItem>
            <s:ScatterViewItem Orientation="0" Width="100" Height="100"></s:ScatterViewItem>
            <s:ScatterViewItem Orientation="0" Width="100" Height="100"></s:ScatterViewItem>
            <s:ScatterViewItem Orientation="0" Width="100" Height="100"></s:ScatterViewItem>
        </s:ScatterView>

            <s:SurfaceInkCanvas Grid.Row="0" Name="Gesture" s:Contacts.PreviewContactDown="Gesture_PreviewContactDown" s:Contacts.PreviewContactChanged="Gesture_PreviewContactChanged" s:Contacts.PreviewContactUp="Gesture_PreviewContactUp"></s:SurfaceInkCanvas>
        <StackPanel Margin="20" Grid.Row="1" Orientation="Horizontal">
            <s:SurfaceTextBox Text="TemplateName" Background="Transparent" BorderThickness="3" BorderBrush="White" Width="200" Name="TemplateName"></s:SurfaceTextBox>
            <s:SurfaceButton Name="Add" Foreground="White" Background="Transparent" Content="Add new template" PreviewContactDown="Add_PreviewContactDown"></s:SurfaceButton>
            <TextBox Foreground="White" Background="Transparent" Margin="220,0,0,0" Name="ResultDisplay" Width="500"></TextBox>
        </StackPanel>
    </Grid>

现在的问题是,如果我想移动ScatterViewItems,事件将由SurfaceInkCanvas消耗,并绘制一个笔划。
这就是我尝试将IsHitTestVisible的{​​{1}}属性设置为SurfaceInkCanvas的原因 然后我可以移动false,但我不能再画任何笔画了ScatterviewItems

我怎样才能允许两者?

1 个答案:

答案 0 :(得分:1)

考虑一下,您希望用户以不同的方式向您的应用程序发出信号,告知他们正在尝试操纵SVI而不是在其中进行绘制。

这个问题的常见答案是:

  • 要进行操作,用户将触摸墨迹周围的可见“框架”。要实现这一点,只需向SVI添加填充。
  • 要墨水,用户将点击按钮将项目切换为“墨水”模式。要实现这一点,请添加一个SVI按钮,用于切换墨迹的IsEnabled。