任何人都有任何可靠的解决方案来防止Silverlight ChildWindow被移动?
感谢, 标记
答案 0 :(得分:1)
我不确定你会打电话给这个但是......
ImmovableChildWindow
。 ChildWindow
。ImmoveableChildWindow
ImmovableChildWindow
样式的现有TargetType值。TargetType
替换为与退出的ImmovaleChildWindow
样式相同的值。ImmovableChildWindow
的ChildWindow样式的大型副本。Template
设置器中查找将TargetType
更改为与样式TargetType
相同的值Border
。删除x:Name="Chrome"
属性。 (这就是我们真正追求的目标)。现在,当您创建一个新的ChildWindow项时,它将默认继承形式ChildWindow
,如果您希望它不可移动,则需要将其修改为继承自ImmovableChildWindow
(更改基本类型)代码隐藏和xaml中的根标记名称。
ChildWindow
将事件附加到FrameWorkElement
,名称为“Chrome”,可以移动子窗口。然而,如果它找不到名为“Chrome”的FrameworkElement
,那么它是一个表现良好的模板化控件,它只会在没有该功能的情况下继续工作。
答案 1 :(得分:1)
不需要创建新类,而是
x:key="stylename"
在Childwindow
的Construtor中,在InitializeComponent
之前粘贴以下代码:
this.Style = App.Current.Resources["childWindow"] as Style;
以上解决方案解决了我的问题
答案 2 :(得分:0)
也许你可以尝试这种简单的方法来做到这一点: 创建一个Grid来扭曲ChildWindow中的所有内容。
<Grid Margin="0">
<!--Your ChildWindow. Canvas, Grid, Textblock...Whatever-->
</Grid>
由于网格的边距为0,因此无法单击并移动它。