WPF入门练习01

来源:互联网 发布:android ndk r10e mac 编辑:程序博客网 时间:2024/06/06 17:39

说到wpf,我之前以为它会很难,不过学了一点知识之后,我觉得和winform差不多,最大的差别就是wpf前台布局是使用相当于XML的语言来编写的,不过学了一下也就懂了。

下面就是练习的两个简单的例子:

例子1,生成10行10列,随机放图片:

前台布局:

<Window x:Class="WpfApplication1.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="MainWindow" Height="350" Width="525" Icon="/WpfApplication1;component/Images/logo.ico" Loaded="Window_Loaded">    <Grid>        <!--<StackPanel>            <Button Width="70px"  Content="btn1" Name="btn1"></Button>            <ProgressBar Margin="10px " Height="13" Minimum="0" Maximum="100" Value="70" Name="progressBar1" Width="284" />        </StackPanel>-->        <Grid Name="grid1">            <!--行和列定义-->            <!--<Grid.RowDefinitions>                <RowDefinition></RowDefinition>                <RowDefinition></RowDefinition>                <RowDefinition></RowDefinition>            </Grid.RowDefinitions>            <Grid.ColumnDefinitions>                <ColumnDefinition></ColumnDefinition>                <ColumnDefinition></ColumnDefinition>                <ColumnDefinition></ColumnDefinition>                <ColumnDefinition></ColumnDefinition>            </Grid.ColumnDefinitions>            <Button Content="1行1列" Grid.Row="1" Grid.Column="1" Margin="0,0,44,68"></Button>-->        </Grid>    </Grid></Window>

后台代码:

    /// <summary>    /// MainWindow.xaml 的交互逻辑    /// </summary>    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();        }        private void button1_Click(object sender, RoutedEventArgs e)        {            if (sender is Button)            {                Button bt = sender as Button;                MessageBox.Show(bt.Name);            }            else            {                MessageBox.Show("其他");            }        }        private void Window_Loaded(object sender, RoutedEventArgs e)        {            for (int i = 0; i < 10; i++)            {                ColumnDefinition colum=new ColumnDefinition();                grid1.ColumnDefinitions.Add(colum);                RowDefinition row = new RowDefinition();                grid1.RowDefinitions.Add(row);            }            Random rd = new Random();            for (int i = 0; i < 10; i++)            {                for (int j = 0; j < 10; j++)                {                    //Button btn = new Button();                    //btn.Content = i+","+j;                    //Grid.SetRow(btn, i);                    //Grid.SetColumn(btn, j);                    //grid1.Children.Add(btn);                    Image img = new Image();                    img.Source = new BitmapImage(new Uri(string.Format("Images/{0}.gif",rd.Next(1,11)),UriKind.Relative));                    Grid.SetRow(img, i);                    Grid.SetColumn(img, j);                    grid1.Children.Add(img);                }            }        }    }

     

例子2 菜单和工具栏控件的使用:

前台布局:

<Window x:Class="WpfControl1.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="主窗口" Height="350" Width="525" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" Icon="/WpfControl1;component/Images/logo.ico">    <Grid>        <DockPanel>            <Menu DockPanel.Dock="Top">                <MenuItem Header="文件">                    <MenuItem Header="打开" Name="MI_Open" Click="MI_Open_Click">                        <MenuItem Header="1.txt" Click="MI_Open_Click"></MenuItem>                        <MenuItem Header="2.txt" Click="MI_Open_Click"></MenuItem>                        <MenuItem Header="3.txt" Click="MI_Open_Click"></MenuItem>                        <MenuItem Header="选择文件…" Name="MI_OpenFile" Click="MI_Open_Click"></MenuItem>                    </MenuItem>                    <MenuItem Header="保存" Name="MI_SaveFile" Click="MI_Open_Click"></MenuItem>                </MenuItem>                <MenuItem Header="编辑"></MenuItem>                            </Menu>            <ToolBar DockPanel.Dock="Top">                <Button Content="新建"></Button>                <Button Content="打开" Name="btnOpenWin" Click="btnOpenWin_Click"></Button>                <CheckBox Content="是否选择"></CheckBox>            </ToolBar>            <TextBox DockPanel.Dock="Bottom" TextWrapping="Wrap" Name="txtContent"></TextBox>        </DockPanel>    </Grid></Window>


后台代码:

    /// <summary>    /// MainWindow.xaml 的交互逻辑    /// </summary>    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();        }        private string  FilePath="";        private void MI_Open_Click(object sender, RoutedEventArgs e)        {            if (sender is MenuItem)            {                MenuItem mi = sender as MenuItem;                //MessageBox.Show(mi.Name);                switch (mi.Name)                {                    case "MI_OpenFile":                        {                            OpenFileDialog ofd = new OpenFileDialog();                            ofd.Filter = "文本文件(aspx,html,txt)|*.txt;*.html;*.aspx|所有文件|*.*";                            ofd.FilterIndex = 0;                            ofd.Multiselect = true;                            ofd.InitialDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop);                            if(ofd.ShowDialog()==true)                            {                               // MessageBox.Show(ofd.FileName);                                FilePath = ofd.FileName;                                txtContent.Text = System.IO.File.ReadAllText(FilePath,Encoding.Default);                            }                        }                        break;                    case "MI_SaveFile":                        {                                                        SaveFileDialog sfd = new SaveFileDialog();                            sfd.Filter = "文本文件(aspx,html,txt)|*.txt;*.html;*.aspx|所有文件|*.*";                            sfd.FilterIndex = 0;                            if (FilePath != "")                            {                                sfd.InitialDirectory = System.IO.Path.GetFullPath(FilePath);                            }                            else                            {                                sfd.InitialDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop);                            }                            if (sfd.ShowDialog() == true)                            {                                System.IO.File.WriteAllText(sfd.FileName, txtContent.Text,Encoding.Default);                            }                        }                        break;                    default:                         break;                }            }            else            {                MessageBox.Show("不是菜单项。");            }        }        //打开一个新窗口,与winform一样        private void btnOpenWin_Click(object sender, RoutedEventArgs e)        {            //SecondWin win2 = new SecondWin("第二窗口");            //win2.ShowActivated = true;            //win2.WindowStartupLocation = WindowStartupLocation.CenterScreen;            //bool? result=win2.ShowDialog();            //if (result != null)            //{            //    MessageBox.Show(result.ToString());            //}        }    }



1 0
原创粉丝点击