WPF子窗体随父窗体移动而移动

主窗体

	/// <summary>
	/// 菜单-关于
	/// </summary>
	/// <param name="sender"></param>
	/// <param name="e"></param>
	private void About_Click(object sender, RoutedEventArgs e)
	{
		//显示“关于”界面,隐藏当前窗体
		About about = new About(this.Top,this.Left);
		about.ShowDialog();  
		//this.Hide();
	}

show和showDialog的区别
用showDialog的话,在打开子窗体时候就不能对父窗体进行操作了;

About.xaml.cs子窗体

	public About(double x, double y)
        {
            InitializeComponent();
            //启用‘Manual’属性后,可以手动设置窗体的显示位置
            this.WindowStartupLocation = WindowStartupLocation.Manual;
            this.Top = x;
            this.Left = y;
        }

构造函数的作用:
构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化;特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们,即构造函数的重载;

特点:
1)构造函数的名字必须与类同名;
2)构造函数没有返回类型,它可以带参数,也可以不带参数;
3)声明类对象时,系统自动调用构造函数,构造函数不能被显式调用;
4)构造函数可以重载,从而提供初始化类对象的不同方法;
5)若在声明时未定义构造函数,系统会自动生成默认的构造函数,此时构造函数的函数体为空;
6)静态构造函数,用static修饰,用于初始化静态变量,一个类只允许有一个构造函数,在类实例化时加载,这时修饰符public、private失去作用;
7)可以使用public、protected、private修饰符;
8)引用父类构造时用():base()方法,引用自身重载的构造使用():this(int para);

Halcon是一款高级机器视觉软件,它主要用于图像处理和计算机视觉任务。如果你想在Halcon的WPF(Windows Presentation Foundation)应用中创建一个可以移动并显示文本的窗体,你可以按照以下步骤操作: 1. **创建WPF窗体**:首先,在Visual Studio中创建一个新的WPF项目,然后添加所需的基本控件,如`TextBox`用于显示文本。 ```xml <Window x:Class="YourNamespace.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="450" Width="800"> <Grid> <StackPanel> <TextBox Name="txtText" Text="Hello, Halcon!" /> <!-- Add a button to allow movement --> <Button Content="Move TextBox" Click="MoveTextBox_Click" /> </StackPanel> </Grid> </Window> ``` 2. **编写C#代码**:在`.cs`文件中,添加一个方法来响应按钮点击事件,并处理文本框的位置更改。 ```csharp using System.Windows; using System.Windows.Controls; public partial class MainWindow : Window { private Point originalPosition; public MainWindow() { InitializeComponent(); originalPosition = txtText.PointToScreen(new Point()); } private void MoveTextBox_Click(object sender, RoutedEventArgs e) { // 获取鼠标当前位置 Point currentPosition = Mouse.GetPosition(txtText); // 计算偏移量 Point newPosition = new Point(currentPosition.X - originalPosition.X, currentPosition.Y - originalPosition.Y); // 更新文本框位置 txtText.TranslatePoint(newPosition, null); originalPosition = currentPosition; } } ```
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值