在這裏失去了我的想法。我花了幾天的時間在WinForms上寫了一個Windows應用程序的開始......昨天做了一個90度轉向,並且出於美學原因不得不切換到WPF。在將某些東西轉換過來時遇到了一些麻煩......即與任何圖形相關在WPF版本,我有以下C#代碼創建所述點處的黑色圓圈和白色矩形發生用戶點擊在面板上,並顯示消息框顯示什麼的x座標是:在畫布上點擊點畫一個矩形wpf
Graphics g;
private void panel1_MouseClick(object sender, MouseEventArgs e)
{
SolidBrush s2 = new SolidBrush(Color.Black);
g.FillRectangle(s2, e.X + 3, e.Y + 3, 10, 10);
SolidBrush s = new SolidBrush(Color.White);
g.FillPie(s, e.X + 4, e.Y + 4, 7, 7, 0, 360);
float x_cord = e.X;
MessageBox.Show("X is: " + x_cord.ToString());
}
我試圖通過下面的代碼來做到這一點的WFB:
Graphics g;
private void Canvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
System.Windows.Point position = e.GetPosition(this);
double pX = position.X;
double pXint = Convert.ToInt32(pX);
MessageBox.Show(pX.ToString());
SolidBrush s2 = new SolidBrush(System.Drawing.Color.Black);
g.FillRectangle(s2, pXint, 5, 10, 10);
}
這編譯和運行正常,但是當我點擊畫布,沒有任何反應!消息框在那裏主要是作爲一個測試來查看事件是否觸發,但事實並非如此。下面是窗口中與畫布對應的XML:
<Grid>
<Canvas Name="Surface" Height="Auto" Width="Auto" Background="White"> </Canvas>
</Grid>
我在做什麼錯在這裏?我其實很喜歡WPF,但某些事情是絕對麻煩的。
一個建議,可以讓你的生活變得更輕鬆:從你的項目中刪除所有對'System.Drawing'的引用。 WPF不使用也不關心該程序集,並且有很多與WPF類同名的類,這可能會造成很多混淆。 – 2013-02-14 23:44:23