自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (7)
  • 收藏
  • 关注

翻译 #478 – 子元素的Margin 在Canvas中的应用(Two Out of Four Margin Values Are Used for Elements in a Canvas)

当向Canvas 面板中添加子元素的时候,你可以指定Top,Left,Bottom和Right附加属性。来确定子元素在Canvas中的位置。同时子元素还可以设置Margin 属性,但是只能有两个数值能起作用。例如你设置了Canvas.Top和Canvas.Left ,那么Margin 属性中起作用的也是Top和Left ,同样,如果你设置了Canvas.Bottom和Canvas.Right,

2016-11-30 18:57:22 719

翻译 #471 – Image 控件的FlowDirection 属性显示效果(How FlowDirection Works with the Image Element)

Image 控件置FlowDirection 属性为RightToLeft 实现水平方向上翻转。 原文地址:https://wpf.2000things.com/2012/01/12/471-how-flowdirection-works-with-the-image-element/

2016-11-29 17:05:35 882

翻译 #467 – 使用UniformGrid 均分行和列(Use a UniformGrid for Evenly Spaced Rows and Columns)

UniformGrid 布局面板和Grid 面板相似,将子元素按照行列的方式排列。但是可以Grid 有一下不同: - 不需要指定行和列的大小 - 所有列都是相同的宽度 - 所有行都是相同的高度 - 要指定预期的行和列的数目 - 不需要给子元素指定所在的行和列子元素将自动的根据添加是顺序从第一行开始显示在对应的行和列中,每样都是从左至右。

2016-11-29 14:53:34 5466

翻译 #466 – 将GridSplitter和SharedSizeGroup联合使用(Using a GridSplitter in Conjunction with a SharedSizeGroup)

一个GridSplitter 允许用户通过拖动分隔条改变行或者列的大小,SharedSizeGroup 属性运行多个行或者列自动拥有同样的大小。你可以将他们合并在一起,允许用户拖动改变一个列或者行的大小,而另外的行或者列自动和它保持一样的大小。下面的例子中,用户可以拖动任何一个分隔条,同时改变左右两列的宽度。

2016-11-29 11:39:38 466

翻译 #462 – 画一个外观更漂亮的GridSplitter(Drawing a Better Looking GridSplitter)

GridSplitter 用来分隔Grid面板的行和列。默认情况下,GridSplitter 控件由一个单独的Border 元素组成。你可以设置border的边框,颜色和背景色来改变GridSplitter 的外观。我们可以在其表面画一对水平线使GridSplitter 的外观更漂亮。我们通过重写GridSplitter 默认样式来实现这个外观。

2016-11-29 10:27:50 1805

翻译 #455 – Using ItemContainerStyle to Bind Data Elements in a Collection to a Grid

在之前的文章中,需要将ItemsControl的子元素的行列和Grid.Row 和Grid.Column 属性绑定,我们的做法是将行列绑定到包含显示项的ContentPresenter 的Grid.Row 和Grid.Column ,是通过继承ItemsControl 类然后重写PrepareContainerForItemOverride 实现。但是有一个更简单的方法(有原文的读者Bru

2016-11-28 18:23:21 387

翻译 #448 – 在Grid中显示数据绑定元素的集合(Data Binding Elements in a Collection to a Grid)

假设你有一个集合,想将集合的数据显示在Grid上,数据所显示行和列根据集合的内容动态设置。你需要在集合的单个实例中有指定行和列的属性并对其进行绑定。你可以使用Grid 面板作为ItemsControl的ItemsPanel 。这样子元素将以Grid 的方式进行布局。然后你可以设置ItemTemplate 属性确定如何显示每个子项的内容。首先你可以试着用下面的代码:<Window x:C

2016-11-28 17:01:55 1250

翻译 #444 – DockPanel 中的子元素不一定一直都是平铺显示(Children of DockPanel Don’t Always Have to be Stretched)

一般情况下,你将子元素停靠在DockPanel 控件中的一边,子元素会平铺当前条目的宽度或者高度显示。但是,如果你使用子元素的HorizontalAlignment 属性(停靠在Top 或者Bottom)或者VerticalAlignment 属性(停靠在Left 或者Right),将会是子元素自动根据内容调整大小。 可以从下图看到,

2016-11-28 11:45:26 736

翻译 #436 – 给Border加上立体阴影(Using a Drop Shadow with a Border)

如果你为一个Border指定一个DropShadowEffect ,那么所有Border 里面的子元素都会获得立体阴影。 效果如图如果你想阴影仅仅只是围绕在Border周围,而不是每个子元素都有阴影。你可以创建两个双生的Border ,一个用来显示子元素,但是没有阴影;一个在相同的地方,

2016-11-25 10:08:51 3683

翻译 #431 – 绑定控件的宽度到高度(Binding a Control’s Width to Its Height)

同一控件的不同属性可以相互绑定,因此你可以将空间的宽度绑定到高度以保证控件一直是一个正方形。下面的例子中,Button控件的HorizontalAlignment属性设置为Stretch,它的宽度会随着容器大小的改变而改变。如果将其ActualWidth属性绑定到Height属性上,那么高度将会一直和宽度相同。 <Button Horizonta

2016-11-24 18:05:01 1857

翻译 #425–使用SharedSizeGroup在Grid间共享列的大小(SharedSizeGroup Allows Sharing Column Sizes Across Differet Grid)

你使用ColumnDefinition的SharedSizeGroup属性使ListBox中所有的子项的列大小都一样。这是因为列表中的每一项中都有自己Grid实例,并且各个不同的Grid之间共享了列宽。一个很普通的例子,我们可以在一个窗口中的两个Grid控件之间共享列宽。

2016-11-24 18:01:04 1349

翻译 #409 – 加入Grid中的子元素默认占满所在单元格(Child Elements in a Grid Size to Fit the Containing Cell)

默认情况下,Grid的子元素会自动调整大小占满其所在单元格。你通常不需要为其设置大小,它的大小会根据所在单元格变化而与单元格保持一致。你也可以通过设置子元素的Margin 属性来设定其与单元格边距距离。

2016-11-10 14:37:31 3662

翻译 #402 – 最后一个添加到DockPanel 中的元素默认占据所有剩余空间(Final Child of DockPanel Fills Remaining Space by Default)

默认情况下,DockPanel 中的最后一个元素将自动扩展以占满所有可用的空间,无论DockPanel.Dock 设置为何值。下面用三个不同背景色的Label来演示: 这是因为DockPanel 的LastChildFill 属性的默认值为true。如果设置为false,就会是不一样的情况,最后一个元素将不会占据所有剩余空间。

2016-11-10 10:25:13 1701 1

原创 WPF将控件导出为图片

WPF将片,主要是使用RenderTargetBitmap 类。下面是一段示例代码:RenderTargetBitmap targetBitmap = new RenderTargetBitmap((int)this.exportGrid.ActualWidth, (int)this.exportGrid.ActualHeight, 96d, 96d, PixelFormats.Defau

2016-11-09 17:19:04 5262

翻译 #400 – 使用ItemsPanel 属性将WrapPanel 作为ListBox的显示面板(Using a WrapPanel as the Items Panel for a ListBox)

ListBox 的ItemsPanel 属性可以指定定义显示各子项的面板的模板。你可以通过定义自己的模板重写ListBox 常见的垂直堆叠式布局。如果你设置了ItemsPanel 模板为WrapPanel,ListBox 将会有WrapPanel的特性。在下面的例子中,我们将上一篇中的ListBox 稍作修改。指定ItemsPanel 包含一个WrapPanel。

2016-11-09 15:09:27 4096

翻译 #395 – 通过数据绑定丰富ListBox 的内容(Rich ListBox Content using Data Binding)

在上一篇讲述SnapsToDevicePixels 属性的文章中,我们使用了一个ListBox 的例子列出了很多电影。里面每一个条目都有包括缩略图在内的若干个数据项组成。下面我们看一下如何在WPF中建立这样一个项目。首先,我们需要一个Move类来存储每个电影的信息。我们将用数据绑定绑定一个这个类的实例,我们也想在数据发送改变的时候绑定能够更新,所以我们继承INotifyPropertyCh

2016-11-09 14:43:59 3471

翻译 #392 – 使用SnapsToDevicePixels 属性消除抗锯齿效果(Use SnapsToDevicePixels Property to Prevent Anti-Aliasing)

因为WPF使用的是设备无关像素,一些GUI控件会因为抗锯齿效果而出现显示模糊的现象。下面图片的例子中,同样宽度为1的竖线显示并不一样。你可以通过设置UIElement 的SnapsToDevicePixels 属性值为true 来消除因为抗锯齿效果而出现的模糊。当设置该属性为true 的时候,渲染系统将会对控件按照像素边界对齐,以消除防锯齿。下面是设置ListBox 的SnapsT

2016-11-08 15:39:57 676

翻译 #391 – 抗锯齿效果会导致界面元素显示模糊(Anti-Aliasing Can Lead to Fuzzy GUI Elements)

你在WPF中设置GUI控件位置和大小使用的是设备无关像素(关于设备无关像素可以看我之前写的文章矢量图与像素无关)。它可以使界面元素在不同的分辨率下始终保持一致的比例显示。因为你没有准确的指定具体的物理像素(根据分辨率不同而变化),控件的边缘很可能并不是正好在某个物理像素上。WPF就在渲染界面控件的时候使用了抗锯齿的方法,比如,某个元素的边界正好卡在半个物理像素的地方,那么这个像素将会按照原来一

2016-11-08 14:31:30 739

翻译 #382 – 将RichTextBox的内容保存为XAML文件(Persisting RichTextBox Contents as XAML)

你可以通过使用TextRange 对象的Save 方法对RichTextBox 控件的内容进行保存。在下面的例子中,我在RichTextBox 控件中输入一些带格式的内容,然后按下Save 按钮。如下图:下面是保存按钮的代码:private void Button_Click(object sender, RoutedEventArgs e) {

2016-11-07 10:00:23 666

翻译 #381 – RichTextBox加载.rtf文件(Loading .rtf Files Into a RichTextBox)

RichTextBox 控件不仅支持加载.txt文件,也可以加载富文本格式文件(.rtf)。你可以使用RichTextBox 的Selection 属性加载文件。XAMLC#rtfMain.Selection.Load(new FileStream(@"D:\Spade.rtf", FileMode.Open), DataFormats.Rtf);显示效果:

2016-11-04 15:23:52 1858

翻译 #380 – Frame控件可以显示网页内容(The Frame Control Can Host Web Content)

你可以通过设置Frame 控件的Source 属性值为可用的URL地址来显示网页内容。它也可以显示标准的网页控件。Grid> <Frame Grid.Column="0" Source="http://en.wikipedia.org/wiki/Snoopy" NavigationUIVisibility

2016-11-04 09:48:37 1661

翻译 #379 – 将ToolTip当做放大器使用(Using a Tooltip As a Magnifier)

你可以将ToolTip当做放大器使用,当鼠标悬停在控件上的时候,ToolTip将会显示这个控件的放大视图。在下面的代码中,我们定义TooTip中有一个长宽是控件两倍的Rectangle (使用绑定和converter)。然后我们用VisualBrush 填充Rectangle 并绑定VisualBrush 的Visual 属性到Tooltip的宿主控件。 <T

2016-11-02 10:11:08 368

你比我猜,游戏程序(windows)

公司年会的时候需要做一个你比我猜的游戏,于是让我写了一个游戏UI,十分简单,现在分享出来给大家。这个程序需要.Net Framework4

2018-01-31

WPF播放GIF图片源代码

WPF播放GIF项目,里面有实现了一个控件(GIFImage)播放GIF控件,然后在窗体中使用。这个控件可以单独拿出来使用。

2016-09-23

WPF拖曳例子

WPF拖曳例子

2016-06-28

WPF Drag Drop例子

WPF Drag Drop例子

2016-06-28

官方WPF 拖曳例子源代码

官方WPF 拖曳例子

2016-06-28

微软C#无线网络管理库

微软官方C#编写的无线网络管理类库

2016-05-24

电脑报VC++教程

简单易懂的介绍了MFC编程,示例不错,适合新手。

2007-12-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除