只是想知道它是否可以像winform那樣做?我可以在哪里添加一個按鈕到我最后一次點擊的地方。我試過谷歌搜索,但不認為我發現任何類似的東西。WPF 的網格是否會成為我可以在單擊時自由放置按鈕的問題?
想法是單擊坐標,然后按按鈕添加影像/按鈕。
以下是我到目前為止所做的,還沒有添加按鈕功能,只是想知道它是否可以像我之前為winform那樣做。
public MainWindow()
{
InitializeComponent();
MainWindow.xCoord = -1;
MainWindow.yCoord = -1;
}
private void AddEvent_Click(object sender, EventArgs e)
{
if (MainWindow.xCoord < 0 || MainWindow.yCoord < 0)
{
MessageBox.Show("Please select a coordinate");
return;
}
}
public void MainWindow_Mouseup(object sender, MouseEventArgs e)
{
Point p = e.GetPosition(this);
textBox1.Text = "x-" p.X "y- " p.Y;
MainWindow.xCoord = (int)p.X;
MainWindow.yCoord = (int)p.Y;
}
uj5u.com熱心網友回復:
是的,你可以做到,你需要使用 aCanvas來繪制按鈕。這可以包含在 中Grid,但 AFAIKCanvas是使用 UI 控制元件具有某種“繪圖”功能的唯一方法。
您將希望在 中捕獲MouseUp事件Canvas,然后將按鈕添加到您可以在處理程式中檢索的位置。
XAML:
<Grid>
<Canvas x:Name="ButtonCanvas" MouseUp="ButtonCanvas_MouseUp"/>
</Grid>
代碼背后:
private void ButtonCanvas_MouseUp(object sender, MouseButtonEventArgs e)
{
Point p = e.GetPosition(ButtonCanvas);
textBox1.Text = "x-" p.X "y- " p.Y;
MainWindow.xCoord = (int)p.X;
MainWindow.yCoord = (int)p.Y;
}
然后只需有一個函式將Button在這些坐標處創建和添加 a (我假設您有某種“將按鈕添加到畫布” Button):
private void AddButtonToCoord_Click(object sender, EventArgs e)
{
var button = new Button();
//--change button properties if you want--
//add to canvas
Canvas.Childen.Add(button);
//set Control coordinates within the canvas
Canvas.SetLeft(button, MainWindow.xCoord);
Canvas.SetTop(button, MainWindow.yCoord);
}
您可以根據自己的需要獲得更多幻想,例如,如果您希望按鈕的中心位于坐標處,或者如果您想防止按鈕被繪制在畫布之外(例如,如果用戶單擊右下角)。但這應該足以獲得一個最小的作業示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/456211.html
