Welcome

首页 / 软件开发 / .NET编程技术 / 《Programming WPF》翻译 第7章 1.图形基础

《Programming WPF》翻译 第7章 1.图形基础2011-09-11 博客园 包建强WPF使得在你的应用程序中使用图形很容易,以及更容易开发你的显卡的能力 。这有很多图形构架的方面来达到这个目标。其中最重要的是综合。

7.1.1综合

图形化元素可以组合到你的用户界面的任何一部分中。很多GUI技术易于将图 形分离到一个独立的世界。这就需要一个“操纵杆”——当移动一个世界的按钮 、文本框和其它框架到另一个世界的Shape和图像中,由于在很多系统中,这两 个世界有不同的编程模型。

例如,Windows Forms和Mac OS的Cocoa都提供了在窗体中排列控件的能力, 以及建立一个与这些控件交互的程序。它们还提供了一些API,这些API提供了高 级的、完全的可伸缩的2维空间绘图工具。(在Windows Forms中为GDI+,在OS X 中为Quartz 2D。)但是这些绘图API是不同于控件API的。绘图基础是非常不同 于这些系统中的控件的,你不可以自由的混合这两种。

WPF,另一方面,把Shape作为UI树中的元素,就像其他元素一样。因此,我 们可以自由的混和它们在任意类型的元素中。示例7-1显示了各种各样的例子。

示例7-1

<DockPanel>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<TextBlock>Mix</TextBlock>
<Rectangle Fill="Red" Width="20" />
<TextBlock>text</TextBlock>
<Ellipse Fill="Blue" Width="40" />
<TextBlock>and</TextBlock>
<Button>Controls</Button>
</StackPanel>
<Ellipse DockPanel.Dock="Left" Fill="Green" Width="100" />
<Button DockPanel.Dock="Left">Foo</Button>
<TextBlock FontSize="24" TextWrap="Wrap">
And of course you can put graphics into
your text: <Ellipse Fill="Cyan" Width="50" Height="20" />
</TextBlock>
</DockPanel>

正如你看到的,图形化元素可以被无缝隙的添加到标记中。外观和图形一起 工作——正如它和任何其它元素一起工作一样,结果如图7-1所示。

图7-1