Silverlight ChildWindowが移動するのを防ぐための優れたソリューションはありますか?
ありがとう、マーク
Silverlight ChildWindowが移動するのを防ぐための優れたソリューションはありますか?
ありがとう、マーク
あなたがこれをきちんと呼ぶかどうかはわかりませんが...
ImmovableChildWindow。ChildWindow。ImmoveableChildWindowImmovableChildWindow。TargetTypeと同じ値に置き換えます。ImmovaleChildWindowImmovableChildWindowます。Templateセッター内で検索し、TargetTypeのをスタイルと同じ値に変更しますTargetTypeBorderという名前のを見つけます。属性を削除します。(これは私たちが本当に求めているものです)。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であるため、グリッドをクリックして移動することはできません。