公共 WPF 控件

Windows Presentation Foundation (WPF) 使您能够为应用程序创建具有更佳视觉效果的用户界面。在 WPF 应用程序中,即使是在标准 Windows 窗体应用程序中常见的那些典型控件也得到了增强。标准 WPF 控件与可在 Windows 窗体的“工具箱”中看到的控件类似。WPF 控件是 System.Windows.Controls命名空间的一部分,而不是 System.Windows.Forms 命名空间的一部分。也可以使用 XAML 标记创建 WPF 控件。有关更多信息,请参见为 WPF 应用程序设计用户界面

将 WPF 控件从“工具箱”拖动到设计图面时,这些控件看上去与 Windows 窗体应用程序中的控件类似。但是,WPF 控件可以进行自定义。WPF 中的控件支持样式和模板,使用它们可创建视觉效果引入注目的应用程序。若要修改控件的外观,可以在 XAML 编辑器中向控件添加样式和属性。由于手动编写 XAML 标记比较困难,因此,可以考虑使用可为您生成 XAML 的应用程序,如 Expression Blend。有关更多信息,请参见与 Expression Blend 的协作

向 WPF 窗口中添加控件

  1. “文件”菜单上单击“新建项目”

  2. “新建项目”对话框的“模板”窗格中,单击“WPF 应用程序”

  3. “名称”框中键入“WPF 控件”,然后单击“确定”

  4. 将创建一个新的 Windows Presentation Foundation 项目。

  5. “工具箱”中将一个“TextBox”控件拖动到 WPF 窗口的右上方。

  6. 单击该文本框。

  7. “属性”窗口中设置该文本框的以下属性。

    属性

    VerticalAlignment

    Top

    Width

    75

    Height

    26

  8. 向 WPF 窗口中该文本框旁添加一个“Button”控件。

  9. 在 XAML 编辑器中将开始和结束 Button 标记之间的文本从 Button 更改为 Add,如下例所示。

    <Button Height="23" HorizontalAlignment="Right" Margin="0,59,35,0" 
        Name="Button1" VerticalAlignment="Top" 
        Width="75">Add</Button>
    

    输入新值后,按钮上的文本将随之更改。

  10. 向 WPF 窗口中该文本框的下方添加一个“ListBox”控件。

  11. 双击该按钮,添加默认的事件处理程序,然后添加以下代码:

    if (textBox1.Text != "")
    {
        listBox1.Items.Add(textBox1.Text);
        textBox1.Text = "";
    }
    
  12. 按 F5 运行程序。此时将出现一个窗口,其中包含刚才添加的文本框、列表框和按钮。

  13. 在文本框中键入一些文本,然后单击“添加”按钮。验证是否已将那些文本添加到列表框。

  14. 向列表框添加其他文本。

下表显示了最常见的 WPF 控件,可以在“工具箱”“公共”选项卡中找到这些控件。

控件名称

说明

System.Windows.Controls.Border

在内容周围显示边框。

System.Windows.Controls.Button

使用户能够通过单击按钮来执行某项操作。单击 Button 时将发生 Buttonbase.Click 事件。

System.Windows.Controls.CheckBox

使用户能够选中和清除某个复选框以指示“Yes/No”或“True/False”值。

System.Windows.Controls.ComboBox

使用户能够从下拉列表中选择一项。当用户单击下拉箭头时,即显示该列表。

System.Windows.Controls.Grid

定义由列和行组成的可变网格区域。

System.Windows.Controls.Image

显示图像。

System.Windows.Controls.Label

在窗体上显示文本。提供对访问键的支持。

System.Windows.Controls.ListBox

使用户能够从列表中选择一项。

System.Windows.Controls.RadioButton

使用户能够从互相排斥的项中进行选择。选择一个单选按钮后,就不能再选择同一容器中的任何其他单选按钮。

System.Windows.Controls.StackPanel

使您能够以垂直或水平方式堆叠子控件。

System.Windows.Control.TabControl

使可视内容能够以表格形式进行排列。

System.Windows.Controls.TextBox

显示无格式文本,并使用户能够输入文本。

“工具箱”中的其他可用控件还包括:

  • 容器控件,如 System.Windows.Controls.CanvasSystem.Windows.Controls.DockPanel 和System.Windows.Controls.Frame。有关更多信息,请参见WPF 容器控件概述

  • 菜单和工具栏,如 System.Windows.Controls.MenuSystem.Windows.Controls.ToolBar 和System.Windows.Controls.Primitives.StatusBar

  • 文档控件,如 System.Windows.Controls.DocumentViewer 和 System.Windows.Controls.FlowDocumentPageViewer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
原创: 本示例以一个共享件为例,对样式资源加以说明,方便对样式有个更深层次的了解,主要有以下特点: 1.使用简单MVVM模式,使用命令代替UI事件。 2.使用到各种样式。 3.将件共享化。 4.使用命令触发器。 public MainWindow() { InitializeComponent(); Action<DataGrid, DelegateCommand<IList<object>>, string> bindData = (xamDataGrid, selectedRowsCommand, rowsPropertyName) => { BindingOperations.SetBinding(xamDataGrid, DataGrid.ItemsSourceProperty, new Binding { Source = ViewModel, Path = new PropertyPath(rowsPropertyName), Mode = BindingMode.OneWay }); // TODO : 全选命令未绑定到vm var contextMenu = (MenuItem)xamDataGrid.ContextMenu.Items[0]; contextMenu.Command = ApplicationCommands.SelectAll; contextMenu.Header = "全选"; var commandTrigger = (EventCommandTrigger)CommandSource.GetTriggers(xamDataGrid); BindingOperations.SetBinding(commandTrigger, EventCommandTrigger.CommandParameterProperty, new Binding { Source = xamDataGrid.SelectedItems, }); commandTrigger.Command = selectedRowsCommand; commandTrigger.RoutedEvent = DataGrid.SelectionChangedEvent; commandTrigger.UpdateCommandParameter = true; }; const string SHARED_DATAGRID = "xgShared"; var viewModel = (MainViewModel)ViewModel; var xdgSystem = (DataGrid)Resources[SHARED_DATAGRID]; bindData(xdgSystem, viewModel.SelectedSystemRowsCommand, "SystemRows"); placeSystem.Content = xdgSystem; var xdgImport = (DataGrid)Resources[SHARED_DATAGRID]; bindData(xdgImport, viewModel.SelectedImportRowsCommand, "ImportRows"); placeImport.Content = xdgImport; }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值