谁有什么干净利落的解决方案来防止移动Silverlight ChildWindow?
谢谢,马克
发布于 2010-04-21 02:46:23
我不确定你会不会称之为整洁但是..。
ImmovableChildWindow。将其继承的类修改为ChildWindow.ImmoveableChildWindowImmovableChildWindow style.TargetType的值与正在退出ImmovaleChildWindow style。ImmovableChildWindow.TargetTypeTargetType更改为与样式setter相同的值,然后找到一个名为Chrome的Border。删除x:Name="Chrome"属性。(这才是我们真正想要的)。现在,当您创建一个新的ChildWindow项时,它将默认继承自ChildWindow,如果您希望它是不可移动的,则需要将其修改为继承自ImmovableChildWindow (更改代码隐藏中的基类型和xaml中的根标记名称)。
ChildWindow将事件附加到名为"Chrome“的FrameWorkElement上,这使子窗口可以四处移动。然而,作为一个行为良好的模板化控件,如果它找不到名为"Chrome“的FrameworkElement,它就会在没有该功能的情况下继续工作。
发布于 2011-12-06 21:34:10
不需要创建新类,而是
从:http://msdn.microsoft.com/en-us/library/dd833070%28VS.95%29.aspx复制
x:key="stylename"Childwindow的构造器中,在InitializeComponentthis.Style = App.Current.Resources["childWindow"] as Style;之前粘贴以下代码
上面的解决方案解决了我的问题
发布于 2011-03-15 23:09:12
也许你可以尝试这个简单的方法:创建一个网格来扭曲你ChildWindow中的所有内容。
<Grid Margin="0">
<!--Your ChildWindow. Canvas, Grid, Textblock...Whatever-->
</Grid>由于网格的页边距为0,因此不能单击并移动它。
https://stackoverflow.com/questions/2674353
复制相似问题