2012-02-13 20 views
0

どのようにしてウィンドウ枠にボタンを配置することができますか。私がやろうとしていることは、WPFアプリケーションの境界線を閉じるボタンを最小限に配置することです。それをする。ウィンドウ枠上にボタンを追加する

+0

([VB.NET&WPFまたはXP上のリサイズまたはVista/7(Firefoxの4のように)タイトルバーボタンを追加する]の可能な重複http://stackoverflow.com/questions/6116553/adding-button-to-titlebar-like-firefox-4-in-vb-net-wpf-or-winforms-on-xp-or) –

+0

あなたの作成方法アプリケーションまたはこのUIのウィンドウ?いくつかのサンプルコードを投稿できますか? –

答えて

0

WPFのコンテキストで「Border」という単語には2つの意味があります。それはボーダー>要素であるか、または<ウィンドウ>要素を定義する領域を意味する可能性があります。どちらですか?

ボーダー>の要素にボタンを追加したい場合は、それを要素のコンテンツとして挿入します。ボタンが複数ある場合は、パネルが必要です(例:<StackPanel>)。

<ウィンドウ>要素のクライアント領域を超えて何も描画することはできません。ウィンドウエリアの外側にボタンを配置するには、必要なボタンを使って別のウィンドウ(「ツールウィンドウ」など)を表示する必要があります。ほとんどの場合、このツールウインドウにはキャプションとサイズ変更不可能な枠線が必要です:WindowStyle = "None" ResizeMode = "NoResize"次に、ツールウィンドウの位置をメインウィンドウと同期させておきます(最もよいのは、両方のWindowsのLeftプロパティとRightプロパティを共通のデータコンテキストのLeftプロパティとRightプロパティにバインドすることです).BindingモードをBothWayに宣言することを忘れないでください)。

EDIT(@佐田からの説明に従ってください):
これは最初です。コンテンツで私はXML要素の本体を意味しました。技術的には、Border要素のChildプロパティです。以下の二つのXAMLsは等価である:

<Border Background="Green" Padding="5"> 
    <StackPanel> 
     <Button>A</Button> 
     <Button>B</Button> 
    </StackPanel> 
</Border> 


<Border x:Name="Bord" Background="Green" Padding="5"> 
    <Border.Child> 
     <StackPanel> 
      <Button>A</Button> 
      <Button>B</Button> 
     </StackPanel> 
    </Border.Child> 
</Border> 
+0

貴重なご助けをいただきありがとうございます。私はWPFに存在する境界要素について言いました.Contentは要素のプロパティではないので、上記のことは機能しません。他の簡単な方法を教えてください。 – Sarita

+0

これまでに試したことがありますが、問題はボタンを正確な位置に配置することができないことです。スタックパネルの向きをHorizo​​ntalに変更しました。ボタンのマージンプロパティを設定してその正しい場所の他のボタンも最初のボタンに対して移動しています。 – Sarita

+0

@佐田、あなたの位置付けの問題は、ボーダーに固有の問題ではなく、StackPanelにあります。 StackPanelでは、ボタンは水平または垂直の順序で順番に切り替わります。グリッドやキャンバスなど他のパネルもあります。正確な配置を制御したい場合は、Canvasパネルを使用して、TopプロパティとLeftプロパティを使用してみます。 – Uri

関連する問題