2

在 Windows Phone UI 设计原则中,MS 建议使用纯色矩形或编码渐变控制背景,以避免多屏不兼容。但在很多需求中,使用图像作为控制背景是必要的。然后,使用 9-patch 图像技术。在 Android 和 IO 中,它是核心支持,但在 WP 中则缺乏。我尝试通过 3 种方法在 WP 中使用它:

  1. 使用 9-cells Grid:将图像剪辑成 9 个补丁并将它们放置到单元格中。它工作正常,但我担心当有很多控制时应用程序性能会降低。

  2. 使用自定义画笔:只有自定义画笔才能将 9-patch 图像绘制为 ImageBrush,但似乎 MS 不允许自定义画笔。

  3. 使用 FramworkElement:像 Rectangle、Ellipse... 我想创建一个 FrameworkElement 可以绘制一个 9-patch 图像。但是,不能使用低级渲染。

我如何实施第二种和第三种方法?

4

2 回答 2

2

我为 Windows Phone 创建了一个与 Android NinePatchDrawable 完全一样的库。你只需要设置一个位图image.9.png,宽度和高度......就完成了!你有你新的图像缩放到你想要的大小。好好享受 :)。将来我会添加更多选项:)。

GitHub链接

于 2014-03-09T23:24:31.010 回答
0

您可以使用 WriteableBitmap 来弥补低级渲染和自定义画笔的不足:http: //msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap (v=vs.95 ).aspx

这样,您可以完全控制如何渲染背景,然后可以将其分配给单个 Image 控件。但它比“使用带有 9 个图像控件的网格”方法复杂得多,而且性能提升可能微不足道。

于 2012-10-12T11:15:59.243 回答