2011-03-08 68 views
0

我目前正在使用一個界面組成的應用程序,該界面包含多個表示一個動作的按鈕,只有一個動作可以分配給數據庫中的每個記錄。當用戶選擇一個動作時,他們會得到一個可選的條目,該條目由3個以上的按鈕組成。WPF相對於點擊按鈕的動態定位

這樣做的一種方法是在每個動作按鈕(7x3)的正確位置上定義3個額外的按鈕,並且只顯示基於點擊的動作按鈕的集合。然而,這些按鈕的值對於每個動作都是相同的,因此如果這些按鈕可以被定義一次,然後顯示在相對於一旦點擊的動作按鈕的適當位置中,則這是有意義的。

有沒有辦法在WPF中做到這一點?

回答

1

有很多方法可以在WPF中做到這一點。我認爲最簡單的將是使用Grid控件,像:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
     <RowDefinition /> 
     ...... 
    </Grid.RowDefinitions> 

    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 

    <Button Grid.Row="0" Grid.Column="0">Button 1</Button> 
    <Button Grid.Row="1" Grid.Column="0">Button 2</Button> 
    <Button Grid.Row="2" Grid.Column="0">Button 3</Button> 
    ...... 

    <StackPanel Name="PanelWithSuboptions" Grid.Column="1" Visibility="Collapsed"> 
     <Button>Suboption A</Button> 
     <Button>Suboption B</Button> 
     <Button>Suboption C</Button> 
    </StackPanel> 
</Grid> 

現在點擊按鈕1,按鈕2或按鈕3,集PanelWithSuboptions' [Grid.Row][1]附加屬性爲0,1分別爲2,和它的當可見性可見,並且它們出現在適當的「主」按鈕附近。

其他方法可能是爲每個包含其他3個小按鈕的主按鈕製作UserControl或使用自定義控件模板。

+0

謝謝,那太好了。我使用PanelWithSuboptions.setValue(Grid.RowProperty,x)和按鈕上點擊更改可見性 – MattP