Silverlight - 防止 ChildWindow 移动
有人有任何巧妙的解决方案来防止 Silverlight ChildWindow 被移动吗?
谢谢, 标记
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有人有任何巧妙的解决方案来防止 Silverlight ChildWindow 被移动吗?
谢谢, 标记
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
我不确定您是否会认为这很简洁,但是...
ImmovableChildWindow
。ChildWindow
。ImmoveableChildWindow
的初始样式。ImmovableChildWindow
样式的现有 TargetType 值。TargetType
替换为与现有ImmovaleChildWindow
样式相同的值。ImmovableChildWindow
的 ChildWindow 样式的大副本。Template
setter 中查找,将TargetType
更改为与样式TargetType
相同的值Border< /code> 名称为 Chrome。删除
x:Name="Chrome"
属性。 (这才是我们真正追求的)。现在,当您创建一个新的 ChildWindow 项目时,它将默认继承
ChildWindow
形式,如果您希望它不可移动,则需要修改它以继承ImmovableChildWindow
(更改基类)在 xaml 中输入代码隐藏和根标记名称)。ChildWindow
将事件附加到名称为“Chrome”的FrameWorkElement
,从而使子窗口能够移动。然而,作为一个行为良好的模板化控件,如果它找不到名为“Chrome”的FrameworkElement
,它就会在没有该功能的情况下继续工作。I'm not sure you'd call this neat but...
ImmovableChildWindow
.ChildWindow
.ImmoveableChildWindow
ImmovableChildWindow
style.TargetType
for this copy to the same value as the exitingImmovaleChildWindow
style.ImmovableChildWindow
.Template
setter change theTargetType
of to the same value as the styleTargetType
Border
with the name Chrome. Delete thex:Name="Chrome"
attribute. (This is what we are really after).Now when you create a new ChildWindow item it will by default inherit form
ChildWindow
, if you want it to be immovable you need modify it to inherit fromImmovableChildWindow
instead (change the base type in the code-behind and the root tag name in the xaml).The
ChildWindow
attaches events to theFrameWorkElement
with the name "Chrome" which enables the child window to be moved about. However being a well-behaved templated control, if it can't find aFrameworkElement
called "Chrome" it just continues to work without that feature.不需要创建新类,而是
从以下位置复制样式:http://msdn.microsoft.com/en-us/library/dd833070%28VS.95%29.aspx
给出
x:key="stylename"
在
Childwindow
的构造函数中,在InitializeComponent
之前粘贴以下代码:this.Style = App.Current.Resources["childWindow"] 作为样式;
上面解决方案解决了我的问题
Not Required to Create new class, instead
Copy the style from: http://msdn.microsoft.com/en-us/library/dd833070%28VS.95%29.aspx
Give
x:key="stylename"
In Construtor of
Childwindow
, paste following code beforeInitializeComponent
:this.Style = App.Current.Resources["childWindow"] as Style;
above solution resolved my issue
也许你可以尝试这个简单的方法来做到这一点:
创建一个网格来扭曲 ChildWindow 中的所有内容。
由于网格的边距为 0,因此您无法单击它并移动它。
Maybe you can try this simple way to do that:
Create a Grid to warp all the content in your ChildWindow.
Since the Grid has a 0 margin, you can not click it and move it.