社区
WPF/Silverlight
帖子详情
MouseDragElementBehavior与GridSplitter事件冲突?
dui_cky
2010-07-30 09:54:51
RT: 在一个border中加了个MouseDragElementBehavior和一个含有GridSplitter的Grid。
把鼠标箭头放在border 外边框的时候可以移动这个GRID,把鼠标箭头移动到GRID中行列线GridSplitter时也
变成移动这个GRID,而不能改变行列大小了? 求解! 我要的效果是外面可移动这个GRID,里面可以改变行列大小。
...全文
173
6
打赏
收藏
MouseDragElementBehavior与GridSplitter事件冲突?
RT: 在一个border中加了个MouseDragElementBehavior和一个含有GridSplitter的Grid。 把鼠标箭头放在border 外边框的时候可以移动这个GRID,把鼠标箭头移动到GRID中行列线GridSplitter时也 变成移动这个GRID,而不能改变行列大小了? 求解! 我要的效果是外面可移动这个GRID,里面可以改变行列大小。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dui_cky
2010-08-01
打赏
举报
回复
额,搞定了,大恩不言谢 ,小恩还是要使劲的感谢。。。
Grid g = (Grid)b.Child;
UIElementCollection gc = g.Children;
for (int gi = 0; gi < gc.Count; gi++)
{
if (gc[gi].ToString() == "System.Windows.Controls.TextBox")
{
TextBox t = (TextBox)gc[gi];
str += "<textbox row='" + t.GetValue(Grid.RowProperty).ToString() + "' column='" + t.GetValue(Grid.ColumnProperty).ToString() + "' > " +
"<Content>" + t.Text + "</Content> \n\t" +
"</textbox> \n\t ";
}
}
jv9
2010-08-01
打赏
举报
回复
[Quote=引用 4 楼 dui_cky 的回复:]
第一个问题解决了,是通过 Grid item = sender as Grid;
Interaction.GetBehaviors(item.Parent).Clear();
把border的 行为先移除 , 然后再添加就能实现了 。
还有个 问题 如何获取 grid中特定行列中的元素控件?
[/Quote]
可以参考这篇文章获取控件内子控件,和模板内控件:
http://www.silverlightchina.net/html/tips/2010/0627/1342.html
http://www.silverlightchina.net/html/tips/2010/0510/1109.html
dui_cky
2010-07-31
打赏
举报
回复
动态添加 m_l 行值 n_r列值 每个单元格中放 textbox
Border border = new Border();
Grid grid = new Grid();
for (int i = 0; i < m_l; i++)
{
grid.RowDefinitions.Insert(i, new RowDefinition() { Height = new GridLength(50) });
}
for (int j = 0; j < n_r; j++)
{
grid.ColumnDefinitions.Insert(j, new ColumnDefinition() { Width = new GridLength(100) });
}
for (int k = 0; k < m_l; k++)
for (int n = 0; n < n_r; n++)
{
TextBox txt = new TextBox();
txt.SetValue(Grid.RowProperty, k);//定义所在行
txt.SetValue(Grid.ColumnProperty, n);//定义所在列
grid.Children.Add(txt);
txt.AcceptsReturn = true;
if (n < n_r - 1)
{
GridSplitter gs = new GridSplitter();
gs.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;
gs.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
gs.Width = 2;
gs.SetValue(Grid.RowProperty, k);
gs.SetValue(Grid.ColumnProperty, n);
gs.SetValue(Grid.ColumnSpanProperty, 1);
grid.Children.Add(gs);
}
if (k != 0)
{
GridSplitter gs1 = new GridSplitter();
gs1.VerticalAlignment = System.Windows.VerticalAlignment.Top;
gs1.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
gs1.BorderThickness = new Thickness(1);
gs1.SetValue(Grid.RowSpanProperty, 1);
gs1.Height = 2;
gs1.SetValue(Grid.RowProperty, k);
gs1.SetValue(Grid.ColumnProperty, n);
grid.Children.Add(gs1);
}
}
border.Child = grid;
border.Margin = new Thickness(50, 100, 0, 0);
//下面为border 添加 拖拽行为
MouseDragElementBehavior mdeb = new MouseDragElementBehavior();
mdeb.ConstrainToParentBounds = true;
Interaction.GetBehaviors(border).Add(mdeb);
问题是这样的,整个border边框 拖拽 没问题 , 里面行列边框中的GridSplitter 用鼠标选中改变大小的功能
变成了移动。(注:选中GridSplitter 后 鼠标改变单元格大小失灵,但是用键盘中上下左右可以改变大小)。
dui_cky
2010-07-31
打赏
举报
回复
第一个问题解决了,是通过 Grid item = sender as Grid;
Interaction.GetBehaviors(item.Parent).Clear();
把border的 行为先移除 , 然后再添加就能实现了 。
还有个 问题 如何获取 grid中特定行列中的元素控件?
dui_cky
2010-07-31
打赏
举报
回复
还有个 问题 如何获取 grid中特定行列中的元素控件?
jv9
2010-07-30
打赏
举报
回复
你的Grid是如何定义的?使用了固定的数值么?能把你代码贴出来看看么?
数学建模数据集全国公交线路站点数据
数学建模数据集全国公交线路站点数据
pg工具巡检报告兼容多个版本
pg工具巡检报告兼容多个版本
基于白鲸优化算法(BWO)优化CNN-BiGUR-Attention风电功率预测研究(Matlab代码实现)
内容概要:本研究聚焦风电功率预测领域,提出了一种基于白鲸优化算法(BWO)优化CNN-BiGRU-Attention复合模型的预测方法。该方法利用卷积神经网络(CNN)提取风电数据的局部时空特征,通过双向门控循环单元(BiGRU)捕捉时间序列的长期依赖关系,并引入注意力机制(Attention)动态调整不同时间步长的特征权重,从而提升预测精度。为进一步优化模型超参数,采用白鲸优化算法(BWO)对模型的学习率、网络层数、神经元数量等关键参数进行全局寻优,解决了传统经验调参效率低、效果差的问题,最终实现了对风电功率的高精度预测。; 适合人群:具备一定编程基础,熟悉机器学习与深度学习算法,从事新能源预测、电力系统调度或相关领域研究的研发人员和科研工作者。; 使用场景及目标:①针对风电等可再生能源出力的强随机性和波动性,实现高精度的功率预测;②为电力系统调度、储能配置、电网稳定性分析等提供可靠的数据支持;③为研究者提供一个结合先进优化算法与深度学习模型的完整实现范例,用于学术研究或工程应用。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示了模型构建与优化的全过程,更强调了算法设计背后的逻辑与工程考量。学习者应在理解各模块(CNN、BiGRU、Attention、BWO)原理的基础上,动手实践并调试代码,重点关注数据预处理、模型超参数优化及结果可视化等环节,以达到最佳学习效果。
储能参与现货电能量-调频辅助服务市场的双层交易决策研究(Matlab代码实现)
内容概要:本文研究了储能系统参与电力现货电能量市场与调频辅助服务市场的双层交易决策问题,提出了一种基于Matlab的双层优化模型与求解方法。上层模型以储能运营商收益最大化为目标,制定在两个市场中的联合投标策略;下层模型通过市场出清模拟,评估投标策略的可行性与收益,实现了策略优化与市场互动的闭环。研究通过IEEE标准算例验证了模型的有效性,结果表明该双层决策方法能有效提升储能系统的综合收益与市场竞争力。; 适合人群:具备电力市场、优化理论基础及Matlab编程能力的电力系统专业研究生、科研人员及从事储能、能源交易的工程技术人员。; 使用场景及目标:①为储能运营商提供参与复合电力市场的科学决策工具;②为研究电力市场机制下多主体博弈与优化策略提供理论模型和仿真案例;③服务于高校相关课程的案例教学与科研项目开发。; 阅读建议:此资源以Matlab代码实现为核心,读者在学习时应重点研读模型构建的数学原理与代码实现逻辑,结合算例数据动手调试运行,深入理解双层优化的迭代求解过程和参数设置对结果的影响,以达到理论与实践的融会贯通。
PC电脑电视TV投屏软件
主要功能:1、局域网内电脑桌面投屏到电视上,延迟已尽量降低,这个功能需要分别有电脑端和电视端,2、电脑推送视频到电视,这个功能无需安装电视端APK 附加功能:可以将APK从电脑推送到电视上安装,但必须要打开电视端APP 无需联网,不上传数据,只要电脑和电视在同一个局域网就可以,即连得是同一个wifi或者路由器。 PS:软件会报警
WPF/Silverlight
8,757
社区成员
12,031
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章