WPF 快捷键读写txt

因为git提交需要写这次做的,所以我想弄个东西来帮我写

WPF可以使用快捷键,快捷键主要使用InputBindingsWPF读写文件很简单

我每次都要写

第一句标题

之后就是我写的修改

然后加上我名字

加上时间

 

有一次我修改了函数f

删除一个函数

标题是我做了工具

我需要写:

 

#我做了工具

修改函数f

删除函数

林德熙 2016316日 16:43:40

 

这样每次写都需要加我的名字,于是我就做了个软件

 

 

点击确定

 



我可以在工具.txt

 



我可以复制里面内容,这样可以在一个不想使用git的,直接看到每天我在做

 

每次按确定,我觉得还是做快捷键,做了alt+enter就是放在工具.txt

 

快捷键

App.xaml

    <Application.Resources>

        <RoutedUICommand x:Key="quedin" Text="确定"></RoutedUICommand>

</Application.Resources>

 

MainPage.xaml

使用快捷键

    <Window.InputBindings>

        <KeyBinding Modifiers="Alt" Key="Enter"  Command="{StaticResource quedin}"></KeyBinding>

</Window.InputBindings>

 

我们把这个命令需要按下的键Modifiers="Alt" 如果需要按ctrl+alt可以Modifiers="Control+Alt"

后台写快捷键使用保存

        private void key(object sender, RoutedEventArgs e)

        {

            view.text = text.Text;

            view.Storage();

        }

TextBox binding是失去焦点更新,我不想去改 

    <Window.CommandBindings>

        <CommandBinding Command="{StaticResource quedin}" Executed="key"></CommandBinding>

    </Window.CommandBindings>

把文件保存

                using (FileStream temp = new FileStream(file, FileMode.Append))

                {

                    byte[] buffer = Encoding.Default.GetBytes(text);

                    int n = buffer.Length;

                    temp.Write(buffer, 0, n);

                    text = "";

                }

我使用Depend绑定文本,因为最后的text需要在后台修改,而view绑定是viewModel,前台和后台数据变化直接,可以前台使用

#region

 

using System.Windows;

using System.Windows.Data;

 

#endregion

 

namespace 跨境工具箱

{

    public class viewModel : DependencyObject

    {

        public viewModel()

        {

            _model = new model();

 

            Binding bind = new Binding("text")

            {

                Source = _model,

                Mode = BindingMode.TwoWay

            };

            BindingOperations.SetBinding(this, text_property, bind);

            bind = new Binding("name")

            {

                Source = _model,

                Mode = BindingMode.TwoWay

            };

            BindingOperations.SetBinding(this, name_property, bind);

            bind = new Binding("time")

            {

                Source = _model,

                Mode = BindingMode.TwoWay

            };

            BindingOperations.SetBinding(this, time_property, bind);

            bind = new Binding("reminder")

            {

                Source = _model,

                Mode = BindingMode.TwoWay

            };

            BindingOperations.SetBinding(this, reminder_property, bind);

            bind = new Binding("file")

            {

                Source = _model,

                Mode = BindingMode.TwoWay

            };

            BindingOperations.SetBinding(this, file_property, bind);

        }

 

        public static readonly DependencyProperty file_property = DependencyProperty.Register(

            "file"typeof (string), typeof (viewModel), new PropertyMetadata(default(string)));

 

        public static readonly DependencyProperty reminder_property = DependencyProperty.Register(

            "reminder"typeof (string), typeof (viewModel), new PropertyMetadata(default(string)));

 

        public static readonly DependencyProperty time_property = DependencyProperty.Register(

            "time"typeof (bool), typeof (viewModel), new PropertyMetadata(default(bool)));

 

        public static readonly DependencyProperty name_property = DependencyProperty.Register(

            "name"typeof (string), typeof (viewModel), new PropertyMetadata(default(string)));

 

        public static readonly DependencyProperty text_property = DependencyProperty.Register(

            "text"typeof (string), typeof (viewModel), new PropertyMetadata(default(string)));

 

        public string file

        {

            set

            {

                SetValue(file_property, value);

            }

            get

            {

                return (string) GetValue(file_property);

            }

        }

 

        public string reminder

        {

            set

            {

                SetValue(reminder_property, value);

            }

            get

            {

                return (string) GetValue(reminder_property);

            }

        }

 

        public bool time

        {

            set

            {

                SetValue(time_property, value);

            }

            get

            {

                return (bool) GetValue(time_property);

            }

        }

 

        public string name

        {

            set

            {

                SetValue(name_property, value);

            }

            get

            {

                return (string) GetValue(name_property);

            }

        }

 

        public string text

        {

            set

            {

                SetValue(text_property, value);

            }

            get

            {

                return (string) GetValue(text_property);

            }

        }

 

        private model _model;

 

    }

}

 

想要这个软件给别人用,他们可以用他们名字,可以选要不要时间

             <Grid.ColumnDefinitions>

                <ColumnDefinition></ColumnDefinition>

                <ColumnDefinition></ColumnDefinition>

                <ColumnDefinition></ColumnDefinition>

            </Grid.ColumnDefinitions>

            <TextBox Text="{Binding Path=name,Mode=TwoWay}" Grid.Column="0" Margin="10,10,10,10"></TextBox>

            <CheckBox Content="时间" Grid.Column="1" Margin="10,10,10,10" IsChecked="{Binding Path=time,Mode=TwoWay}"></CheckBox>

            <Button Grid.Column="2" Content="确定" Margin="10,10,10,10" Click="key"></Button>

 

保存设置

        public void storage()

        {

            try

            {

                string str = "工具箱.txt";

                using (FileStream temp = new FileStream(str, FileMode.Create))

                {

                    str = file + "\n" + name + "\n" + time;

                    byte[] buffer = Encoding.Default.GetBytes(str);

                    temp.Write(buffer, 0, buffer.Length);

                }

            }

            catch (Exception e)

            {

                reminder = e.Message;

            }

        }

这个软件我使用在宝资通

这个月准备CVTE面试,没有时间去写博客,之前在写网络编程,现在还好多问题我在找微软写的,但是他们做的好像好多没有,我看了超神的QiniuUWP,他用的我看到是HttpWebRequest  Socket现在王大神就做了局域网通信,我还在看,他写的我看不明白,不是他用的高级,是没有把心放在去看他的

 

 

 

 

lindexi_gd CSDN认证博客专家 C# WPF UWP 微软最具价值专家
我是微软Windows应用开发方向的最具价值专家,欢迎访问我博客blog.lindexi.com里面有大量WPF和UWP博客
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页