2013-02-07 12 views
0

我有一個以編程方式生成的對象網格。用於Windows應用商店的.Net中按鈕的齊平網格佈局

出於測試目的,網格中的每個單元格都是一個Border對象,其子對象是一個Image對象。每個細胞都與其鄰居齊平放置並完美顯示。

當我用Button對象替換每個Image對象時(每個單元格仍然是一個Border對象,只是使用Button而不是Image),單元格之間會出現明顯的間隙。

我已經嘗試設置保證金,填充等0

有什麼特別之處按鈕,使他們這樣的行爲,我該怎麼克服呢?

回答

1

Margin在控制模板中定義。您可以按照以下步驟更改它:

右鍵單擊設計器中的按鈕,然後從上下文菜單中選擇Edit Template>Edit a Copy...

Context menu

在該對話框中選擇新樣式的名稱,然後選擇你想要把它。

Create style dialog

現在找到XAML以下塊樣式,並設置Margin0

<Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Margin="3"> 
    <ContentPresenter x:Name="ContentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
</Border> 

從樣式聲明或者刪除x:Key指定新的風格,所有的按鈕:

<Style TargetType="Button"> 
    <!-- style definition --> 
</Style> 

或通過設置樣式選擇按鈕:

<Button Style="{StaticResource MyButtonStyle}"/> 

無論哪種方式,你會有你的按鈕彼此相鄰,沒有任何間隙。

+0

謝謝,拋出我的是嵌入式邊框的邊距爲3,而不是按鈕本身。 –

0

因此,我並不嚴格地熟悉Windows應用商店應用的工作方式,但我不認爲它離一般的WPF/Silverlight太遠了。當並排放置時,我會從標籤控制中獲得與不必要的填充相同的挫敗感。你可以做的只是使用負邊距,這將糾正它。我認爲你不得不那麼幹淨,但它確實有效。

相關問題