求WPF中的九格帖图实现
九格帖图原理:
假如有这样一张图
绘制方法:
1、四角(Left-Top、Right-Top、Left-Bottom、Right-Bottom)按一比一比例帖图。
2、四边(Left Side、Right Side ....)按X方向或是Y方向平铺或拉伸
3、中间部分(Content)沿XY方向等比拉伸
问题:
1、WPF是否已经有可行解决方案?
2、如果WPF无现成解决方案,可否通过对WPF的现在类或控件进行扩展实现,如可以请附相关代码
3、如何调用WPF相关对象实现自由绘图,如类似GDI中的Bitblt方法
分不够可以再加!
[解决办法]
圆角Border控件就支持的
如果想自定义样式实现九宫的话,可以用Grid控件
一三行和列的宽度定死,中间的设置为*
WPF可以用GDI先生成一个内存图像,然后将URL设置为内存图像
[解决办法]
其实我不太明白这个背景到底怎么处理,比如说,如果这里显示的是一个图片,而不是这么个简单的Button,那么除了中间部分,是否边缘会被拉伸.我觉得是,因为如果不是,我想象不出来什么理由...
如果会,那么实现很简单:
用VisualBrush绘制Border的Background即可.而边缘的角,则由Border提供
如果不会,那么需要使用RenderTargetBitmap.它同样是通过Render()函数绘制一个Visual,但是最后,自己拼接吧...
[解决办法]
直接使用矢量图多好,
矢量图可以让美工先用AI画好,然后用Design生成XAML