【发布时间】:2014-05-20 20:26:11
【问题描述】:
这是我的 XAML
<Window x:Class="Drawing.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBox Grid.Row="0" Height="25" IsEnabled="False" Name="txt"/>
<Canvas Name="cnv" MouseLeftButtonDown="cnv_MouseLeftButtonDown" Grid.Row="1"/>
</Grid>
</Window>
...这是我的 C# 代码
private void cnv_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Point p = Mouse.GetPosition(cnv);
p.X += cnv.Margin.Left;
p.Y += cnv.Margin.Top;
txt.Text = p.ToString();
}
问题:
- 即使我单击画布,事件也没有触发。我想知道为什么?有什么我错过的吗?
- 在这段代码中,我没有包含任何画布边距,但是由于我以后要使用边距,是否需要在单击位置加上边距才能得到正确的值?
谢谢。
【问题讨论】:
标签: c# wpf canvas mouseevent