2012-02-13 129 views
0

如何才能將按鈕放在窗口邊框上。我正在嘗試的是在c#中的WPF應用程序邊框上放置近距和最小化按鈕。任何人都可以告訴我如何要做到這一點。在窗口邊框上添加按鈕

+0

的[添加按鈕標題欄(如Firefox 4)在VB.NET&WPF或XP的WinForms或Vista/7](可能重複http://stackoverflow.com/questions/6116553/adding-button-to-titlebar-like-firefox-4-in-vb-net-wpf-or-winforms-on-xp-or) – 2012-02-13 11:23:33

+0

你是如何創建你的這個UI的應用程序或窗口?你可以發佈一些示例代碼嗎? – 2012-02-13 12:23:51

回答

0

WPF上下文中的'Border'這個詞可能有兩個含義。它可能是<邊框>元素,或者您可能指定的區域定義了<窗口>元素。哪一個?

如果您只想在<邊框>元素上具有按鈕,只需將其作爲元素的內容即可。如果您有多個按鈕,則需要有一個面板(例如<StackPanel>)。

您無法在<窗口>元素的客戶區域之外繪製任何東西。要在Window區域之外有按鈕,您應該使用所需按鈕的另一個窗口(例如'toolwindow')。很可能你想要這個沒有標題和不可調整大小的邊框的工具窗口:WindowStyle =「None」ResizeMode =「NoResize」。然後,保持工具窗口位置與主窗口同步(最好的做法是將兩個Windows的Left和Right屬性綁定到公共數據上下文中的Left和Right屬性。不要忘記將Binding模式聲明爲BothWay )。

編輯(按照@Sarita的說明):
所以它是第一個。按內容我指的是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 2012-02-13 13:31:00

+0

我已經嘗試過,但問題是我無法將按鈕放置在他們應該在的確切位置。我已將堆棧面板的方向更改爲Horizo​​ntal.While將一個按鈕的邊距屬性設置爲放置其正確位置的其他按鈕也正在相對於第一個按鈕移動。 – Sarita 2012-02-14 05:52:46

+0

@Sarita,你的定位問題不是特定於邊界,而是特定於StackPanel。在一個StackPanel按鈕中,按照水平或垂直順序依次排列。還有其他面板,例如網格和畫布。如果要控制精確定位,請嘗試使用「畫布」面板以及「頂部」和「左側」屬性。 – Uri 2012-02-14 06:00:44