none
wpf下实现九宫格画刷 RRS feed

  • 问题

  • 我想做个画刷,能将一张位图按九宫格拉伸,有一个自定义的Thickness属性可以设置九宫格四个拉伸边的位置。

    控件有模板可以定制,画刷如何定制啊?DrawingBrush?如何把孩子Drawing的属性绑定到自己的属性上?

    主要是实现类似于QQ聊天气泡的功能

    谢谢
    2016年5月25日 3:44

全部回复

  • 您好 skczjun,

    >>"我想做个画刷,能将一张位图按九宫格拉伸"

    请问您的画刷要应用到哪个控件的哪个属性上?在WPF中可以使用变换来控制图片的位置和位移。

    >>"控件有模板可以定制,画刷如何定制啊?DrawingBrush?"

    您所说的定制指的是什么?自定义画刷吗?自定义画刷 我们可以新建一个类继承自System.Windows.Media.Brush。

    >>"如何把孩子Drawing的属性绑定到自己的属性上?"

    我们可以遍历逻辑树,然后获取子节点的属性值。并赋值给当前节点的属性。以下为遍历逻辑树的代码,供您参考。另外WPF的控件并不存在Drawing属性,请问您指的是WPF控件的哪个属性?

    //遍历逻辑树
    public void EnumLogicalTree(int Ident, object logObj)
    {
        if (!(logObj is DependencyObject))//对象必须派生自DependencyObject对象
            return;
    
        foreach (object childLogical in LogicalTreeHelper.GetChildren(logObj as DependencyObject))
        {
            Console.WriteLine(new string(' ', Ident) + childLogical);
            EnumLogicalTree(Ident + 1, childLogical);
        }
    }
    Best Regards,
    Li Wang

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2016年5月26日 5:34