【发布时间】:2017-11-24 12:46:29
【问题描述】:
你好,我正在做一个简单的程序,它加载一张图片并在画布上添加一个矩形。
我有这个 xaml 代码
<Grid>
<Image x:Name="img" Source="{Binding ImagePath, Source={x:Static vm:DrawingVM.instance}, Converter={StaticResource nullImageConverter}}" Stretch="None">
</Image>
<ItemsControl ItemsSource="{Binding ListRectangle, Source={x:Static vm:DrawingVM.instance}}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas x:Name="cnvas" Width="{Binding ElementName=img, Path=ActualWidth}"
Height="{Binding ElementName=img,Path=ActualHeight}"
LayoutTransform="{Binding ElementName=img, Path=LayoutTransform}">
<!--MouseDown="cnvas_MouseDown" MouseLeftButtonDown="cnvas_MouseLeftButtonDown"-->
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDown">
<ei:CallMethodAction MethodName="MouseDownDrawing" TargetObject="{Binding Source={x:Static vm:ResizerVM.instance}}" />
</i:EventTrigger>
<i:EventTrigger EventName="MouseMove">
<ei:CallMethodAction MethodName="MouseMoveDrawing" TargetObject="{Binding Source={x:Static vm:ResizerVM.instance}}" />
</i:EventTrigger>
<i:EventTrigger EventName="PreviewMouseLeftButtonDown" >
<ei:CallMethodAction MethodName="OnLeftButtonClicked" TargetObject="{Binding Source={x:Static vm:ResizerVM.instance}}" />
</i:EventTrigger>
<i:EventTrigger EventName="MouseLeftButtonDown" >
<ei:CallMethodAction MethodName="MouseLeftButtonDownClicked" TargetObject="{Binding Source={x:Static vm:ResizerVM.instance}}" />
</i:EventTrigger>
<i:EventTrigger EventName="PreviewMouseLeftButtonUp" >
<ei:CallMethodAction MethodName="DragFinishedMouseHandler" TargetObject="{Binding Source={x:Static vm:ResizerVM.instance}}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Canvas>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding X}"/>
<Setter Property="Canvas.Top" Value="{Binding Y}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Width="{Binding Width}" Height="{Binding Height}" Stroke="Blue" Fill="Transparent" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
我想要做的是在画布上画一个矩形,但鼠标。但它不会执行事件,因为图像是 UPPER。 如何设置 IMAGE 的位置以使 CANVAS 为 UPPER? 这样我就可以像使用鼠标绘制矩形一样执行事件
【问题讨论】: