Silverlight ChildWindowが移動するのを防ぐための優れたソリューションはありますか?
ありがとう、マーク
Silverlight ChildWindowが移動するのを防ぐための優れたソリューションはありますか?
ありがとう、マーク
あなたがこれをきちんと呼ぶかどうかはわかりませんが...
ImmovableChildWindow
。ChildWindow
。ImmoveableChildWindow
ImmovableChildWindow
。TargetType
と同じ値に置き換えます。ImmovaleChildWindow
ImmovableChildWindow
ます。Template
セッター内で検索し、TargetType
のをスタイルと同じ値に変更しますTargetType
Border
という名前のを見つけます。属性を削除します。(これは私たちが本当に求めているものです)。x:Name="Chrome"
これで、新しいChildWindowアイテムを作成すると、デフォルトでフォームが継承されますChildWindow
。移動できないようにする場合は、代わりに継承するように変更する必要がありますImmovableChildWindow
(分離コードのベースタイプとxamlのルートタグ名を変更します)。
子ウィンドウを移動できるようにする「Chrome」という名前のChildWindow
イベントをに添付します。FrameWorkElement
ただし、正常に動作するテンプレートコントロールであるため、「Chrome」と呼ばれるものが見つからない場合は、FrameworkElement
その機能がなくても機能し続けます。
代わりに、新しいクラスを作成する必要はありません
次の場所からスタイルをコピーします:http://msdn.microsoft.com/en-us/library/dd833070%28VS.95%29.aspx
与えるx:key="stylename"
のコンストラクターでChildwindow
、次のコードを前に貼り付けますInitializeComponent
。
this.Style = App.Current.Resources["childWindow"] as Style;
上記の解決策は私の問題を解決しました
たぶん、この簡単な方法を試すことができます。グリッドを作成して、ChildWindow内のすべてのコンテンツをワープします。
<Grid Margin="0">
<!--Your ChildWindow. Canvas, Grid, Textblock...Whatever-->
</Grid>
グリッドのマージンは0であるため、グリッドをクリックして移動することはできません。