silverlight中动态改变控件大小
silverlight中动态改变控件大小,像VS设置窗口一样,点选控件时控件出现边框。拖拽边框动态改变控件大小?还有就是两个控件发生重叠。如果动态控件哪个控件在上面显示?
最好有这方面的例子和源码。
[解决办法]
1、点选时出现边框,这个很容易实现的,如果是自定义控件,你需要有响应视图状态支持,比如FocusState,如果你的控件继承自UserControl,那么就会继承该视图状态,你只需在控件模板定义中当视图状态为Focused状态时用动画显示一个边框就可以了;具体也参考Silverlight Toolkit的源码
2、通过拖拽相关的事件来实现,类似自定义窗体的相关功能,这个到CodeProject或者google都可以找到开源的代码
3、控件重叠问题,你可以用一个Canvas来呈现控件,Canvas里的控件通过设置附加属性Canvas.ZIndex来控制哪个控件显示在最上面,Canvas.ZIndex值最大的显示在最顶层
[解决办法]
1、响应鼠标事件,然后画框
2、自己定义mouseleftbuttondown,mousemove,mouseleftbuttonup事件,控制控件的大小
3、Canvas.SetZIndex(控件对象,Z顺序)可以动态改变控件的Z轴顺序,其容器是Canvas是非必须的,Grid上也可
[解决办法]