首页 新闻 搜索 专区 学院

MouseDragElementBehaviors 与InkCanvas拖动问题

0
悬赏园豆:30 [待解决问题]

<ContentControl  VerticalAlignment="Bottom" HorizontalAlignment="Right" >

<i:Interaction.Behaviors>
<s:MouseDragElementBehaviors/>
</i:Interaction.Behaviors>                     

<InkCanvas Margin="188,5,104,0"
DefaultDrawingAttributes="{StaticResource mydab}"
Background="White" Name="inkCanvas"
Focusable="False">
</InkCanvas>

</ContentControl>

需求:ContentControl 可以拖拽移动,InkCanvas可以再面板上写字。

 

问题:ContentControl 拖拽移动, 导致InkCanvas不能在面板上写字,怎么使InkCanvas写字时候这个ContentControl 不移动呢?

请问是要禁止什么事件?还是重写MouseDragElementBehaviors ,但是怎么重写呢??

wpf
aggier的主页 aggier | 初学一级 | 园豆:60
提问于:2013-06-29 15:43
< >
分享
所有回答(1)
0

本来你这个需求就有问题。。。InkCanvas与ContentControl之间得有一点间距才可以拖动啊。。。你可以参考下面的代码:

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" x:Class="WpfApplication2.MainWindow"
Title="MainWindow"
Width="600"
Height="800">
<Canvas>
<Border Background="Blue">
<i:Interaction.Behaviors>
<ei:MouseDragElementBehavior/>
</i:Interaction.Behaviors>
<ContentControl Width="500" Height="500">
<InkCanvas Margin="10,37,10,10" Background="Yellow" />
</ContentControl>
</Border>

</Canvas>
</Window>

Leaco | 园豆:233 (菜鸟二级) | 2013-06-29 17:35

真切感谢 Leaco ,理解你的意思,我那代码是我随手敲的,没有验证过。我遇到的问题是,一个Windows下有个ContentControl是可以拖动的,ContentControl里面包含一个InkCanvas ,当我在InkCanvas 上面写字的时候,外面的ContentControl也会移动们导致我在InkCanvas里面写不了字……
起初我没有想到路由事件导致的,看你的代码测试一下,
想到了路由事件,我把inkCanvas_PreviewMouseDown事件里面的 e.handle=true;就好了。呵呵。

支持(0) 反对(0) aggier | 园豆:60 (初学一级) | 2013-07-01 11:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册