WPF学习分享(二)——弹出文本输入框

2 篇文章 0 订阅

弹出文本输入框


原本以为WPF弹出文本输入框很简单,结果查了一下发现没有。。。虽然有一些第三方的控件,但是由于想要自己实现一个,所以就折腾了一下。


首先需要创建一个窗体,而不是用户控件,一开始被这个坑到了一下。

  • Login.xaml.cs
    public partial class Login : Window
    {

        public User user;
        public Login()
        {
        	//窗口居中
            WindowStartupLocation = WindowStartupLocation.CenterScreen;
            InitializeComponent();
            this.Width = 300;
            this.Height = 150;
        }

        private void Commit(object sender, RoutedEventArgs e)
        {
        	//业务逻辑。。。。
        	DialogResult = true;
            Close();
        }

        private void Cancel(object sender, RoutedEventArgs e)
        {
            DialogResult = false;
        }
    }
  • Login.xaml
<Window x:Class="AdressBook.Login"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:AdressBook"
             mc:Ignorable="d" 
             d:DesignHeight="100" d:DesignWidth="200" Background="AliceBlue">
    <StackPanel>
        <Label Content="请输入用户的id" HorizontalAlignment="Center" x:Name="Theme"/>
        <Grid Height="30" Margin="0 10 0 10">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*"/>
                <ColumnDefinition Width="8*"/>
            </Grid.ColumnDefinitions>
            <Label Grid.Column="0" HorizontalAlignment="Center" Content="id" x:Name="Input"/>
            <TextBox TextWrapping="Wrap" x:Name="id" Grid.Column="1"/>
        </Grid>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Button Grid.Column="0" Content="确认" Click="Commit" HorizontalAlignment="Center"/>
            <Button Grid.Column="1" Content="取消" HorizontalAlignment="Center" Click="Cancel"/>
        </Grid>
    </StackPanel>
</Window>

一个自定义的简单弹窗就创建好了。这个窗体主要的不同就是cs代码里面对DialogResult的赋值。


接下来就是在父窗体弹出窗口了。

			//截取部分代码
            Login login = new Login();
            Hide();
            login.ShowDialog();
            if (login.DialogResult == true)
            {
            	......
                Show();
            }
            else
            {
                Environment.Exit(Environment.ExitCode);
            }

只需要调用ShowDialog这个函数就可以了,在DialogResult没有赋值之前,ShowDialog之后的代码不会执行,一开始不知道,结果走了很多弯路(〒︿〒)


  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值