2011-03-08 17 views
14

このMSDN pageによると、Windowを使用していた場合は、左上のコントロールボックスをfalseに設定して無効にできます。このように:this.ControlBox = false;WPFでシステムメニューを削除するには?

ControlBoxは最大化、最小化、復元して閉じるオプションに
I want to disable this box in my own application

を持っているしかし、私はこのような状況でコントロールボックスを無効にする方法を、代わりにウィンドウのRibbonWindow使用していますので、?

This questionは非常に関連していますが、Alt + Spaceを防ぐのではなく、常にSystemMenuを無効にしたいと考えています。これは、左上隅のSystemMenuのアクションリスナーがXAMLのクリック可能なUI要素をブロックしているからだと思います。

これはWindows Server 2003では問題ではありませんが、Windows 7でアプリケーションを開くと、SystemMenu/ControlBoxは左上隅のUI要素と干渉します。

さらに、私は、システムメニューを妨害すると、通常はアプリケーションの右上隅にあるボタンが無効になることがわかりましたが、そのようなことは起こりたくありません。

ありがとうございますlink Eammonn。その人がやろうとしていることは、左上隅のメニューではなく右上の[X]ボタンを無効にすることですが、間違っている可能性があります。私はそれが動作するとは思わない理由は、彼らは<Window x:Class=を使用していると私は<dc:RibbonWindow x:Class=を使用しているということです。これは違いがありますか?

+1

RibbonWindowはどこから来ましたか(私はこれを提供する少なくとも2つの異なるライブラリを知っていますが、どれがどちらを使用しているか不思議です)。 – CodingGorilla

+0

Microsoft.Windows.Control.Ribbon.RibbonWindow –

+1

RibbonWindowについても、Eamonnの答えはWindowの拡張機能なので、うまくいくはずです。 Office 2010はコントロールボックスを再導入しました(アイコン付き)。 Office 2007はそれを隠していた。これはorbやクイックアクセスツールバーに干渉しますか? – CodeNaked

答えて

14

WPFウィンドウはSystem.Windows.Formsオブジェクトではないため、this.ControlBox = falseはとにかく動作しません。そこWPFでこれを行うには、明示的なプロパティがありませんが、それはあなたがコントロールボックスのWPFのバージョンを削除する方法について説明し

http://winsharp93.wordpress.com/2009/07/21/wpf-hide-the-window-buttons-minimize-restore-and-close-and-the-icon-of-a-window/

この記事を参照してください。

WPFコントロールは、あなたがあなたの窓の

<Window ... 
    WindowStyle="ToolWindow" 
    ResizeMode="NoResize"> 

幸運を設定しSystem.Windows.ControlsしていないのSystem.Windows.Forms

+1

ありがとう!とにかくWPFウィンドウのオブジェクトの種類を知っていますか? –

+1

これはコントロールです。 –

+0

具体的には、ネイティブウィンドウ(つまり、HWND)を「ラップする」WPFコントロールです。 – CodeNaked

0

由来しています。

関連する問題