wpf-学习笔记3

1.菜单:普通菜单、上下文菜单(ContextMenu)
<Menu HorizontalAlignment="Left" Height="20" VerticalAlignment="Top" Width="517">
            <MenuItem Header="文件"></MenuItem>
            <MenuItem Header="编辑"></MenuItem>
            <MenuItem Header="视图"></MenuItem>
        </Menu>
2.DockPanel:让元素靠左右上下;        <DockPanel>
            <TextBox DockPanel.Dock="Bottom" Text="caonia"></TextBox>
            <Button DockPanel.Dock="Left" Content="niameigouride"></Button>
            <Button DockPanel.Dock="Right" Content="wocao"></Button>
            <Label DockPanel.Dock="Top" Content="nima"></Label>
        </DockPanel>


3.Toolbar:放入其中的控件都有新的默认外观;
显示图标的方法:Button的Content中放Image;
  <ToolBar DockPanel.Dock="Top" Height="30">
                <Button>
                    <Image Source="1.ico"></Image>
                </Button>
                <Button Content="新建"></Button>
                <CheckBox Content="自动保存"></CheckBox>
                <TextBox Text="自动保存"></TextBox>
            </ToolBar>
4.多窗口:
窗口名字:window  Title="";
居中:window   WindowStartupLocation="CenterScreen"
不能缩放:window  ResizeMode="NoResize";
窗口默认最大化:WindowState="Maximized";
5.传值:
Main窗口:
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            String txt=mainTxt.Text;
            AboutWindow aw = new AboutWindow();
            
            aw.TxtMy = txt;
            aw.Show();
        }
AboutWindow 定义一个TxtMy 属性接收值;
    public partial class AboutWindow : Window
    {
        public String TxtMy { get; set; }
        public AboutWindow()
        {
            InitializeComponent();
        }


        private void Window_Loaded_1(object sender, RoutedEventArgs e)
        {
            aboutTxt.Text = TxtMy;
        }
    }
6.ipw.ShowDialog();用ShowDialog打开的窗口,如果设置了DialogResult(bool?)为true或flase会关闭窗口;
private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            InputWindow ipw = new InputWindow();
            bool? b=ipw.ShowDialog();
            if (b==null)
            {
                MessageBox.Show("没设置");
            }
            else if(b==true)
            {
                MessageBox.Show("确定");
            }
            else
            {
                MessageBox.Show("取消");
            }
        }
7. OpenFileDialog :
private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
   //文件过滤器
            ofd.Filter = "文本|*.txt|png|*.png|jpeg|*.jpg";
            if (ofd.ShowDialog()==true)
            {
                String str = ofd.FileName;
                //MessageBox.Show("打开了"+str);
                imagemy.Source=new BitmapImage(new Uri(str));
            }
            else
            {
                MessageBox.Show("取消了");
            }
        }
ofd.FileName;//得到文件名
8.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ListView根据内容自动调整列宽可以让界面更加美观和易于使用。以下是实现的步骤: 1. 确定ListView的列数和列名。 2. 将ListView的View属性设置为GridView。 3. 为每个列设置一个HeaderTemplate,其中包含一个TextBlock控件。 4. 在ListView的Loaded事件中添加代码,使用ActualWidth属性设置每个列的宽度。 5. 在ListView的SizeChanged事件中添加代码,使用ActualWidth属性设置每个列的宽度。 下面是一个示例,演示如何在WPF中自动调整ListView列宽: ```xml <ListView ItemsSource="{Binding Items}" Loaded="ListView_Loaded" SizeChanged="ListView_SizeChanged"> <ListView.View> <GridView> <GridViewColumn Header="ID" Width="Auto"> <GridViewColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding}" /> </DataTemplate> </GridViewColumn.HeaderTemplate> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding ID}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="Name" Width="Auto"> <GridViewColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding}" /> </DataTemplate> </GridViewColumn.HeaderTemplate> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Name}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Header="Age" Width="Auto"> <GridViewColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding}" /> </DataTemplate> </GridViewColumn.HeaderTemplate> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Age}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> ``` ```csharp private void ListView_Loaded(object sender, RoutedEventArgs e) { var listView = sender as ListView; if (listView != null && listView.Items.Count > 0) { var gridView = listView.View as GridView; if (gridView != null) { double workingWidth = listView.ActualWidth - SystemParameters.VerticalScrollBarWidth; for (int i = 0; i < gridView.Columns.Count; i++) { gridView.Columns[i].Width = workingWidth / gridView.Columns.Count; } } } } private void ListView_SizeChanged(object sender, SizeChangedEventArgs e) { var listView = sender as ListView; if (listView != null && listView.Items.Count > 0) { var gridView = listView.View as GridView; if (gridView != null) { double workingWidth = listView.ActualWidth - SystemParameters.VerticalScrollBarWidth; for (int i = 0; i < gridView.Columns.Count; i++) { gridView.Columns[i].Width = workingWidth / gridView.Columns.Count; } } } } ``` 在这个示例中,我们创建了一个包含三列的ListView,每个列的宽度都设置为Auto。在ListView的Loaded和SizeChanged事件中,我们使用ActualWidth属性计算每个列的宽度,以便使列宽适合ListView的大小。当ListView的大小改变时,我们重新计算列宽。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值