2009-12-09 6 views
6

Mam siatkę z 4 przyciskami ... 1 wiersz, 4 kolumny. Szukam sposobu wizualnego pogrupowania dwóch przycisków po lewej od dwóch po prawej. Szukałem sposobu, aby to zrobić z separatorem, ale nie wydaje się, że gra się dobrze z Grid, preferując StackPanel.Separator WPF między przyciskami siatki

Czy to odpowiednia kontrola?
Jeśli tak, w jaki sposób jeden element oddziela kolumny (w tym przypadku wypełnione przyciskami)?

Dzięki.

Odpowiedz

1

Zwykle używam prostego wyboru, aby dodać kolumnę o stałej szerokości pomiędzy przyciskami Rzeczywiście można wykorzystać inny kolor tła lub wstawić obraz

+1

tak, po prostu zrobić linię. Przypuszczam, że działa równie dobrze. – Bob

+0

Gdzie ustawiasz kolor tła? Czy jest to pod-własność na jednej z właściwości definicji kolumn? – Bob

+0

można dodać panel i ustawić jego kolor tła – Zied

6

Czy spróbował GridSplitter?

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Height="*" /> 
     <ColumnDefinition Height="Auto" /> 
     <ColumnDefinition Height="100" /> 
     <ColumnDefinition Height="100" /> 
    </Grid.ColumnDefinitions> 
    <Button/> 
    <Button/> 
    <GridSplitter ResizeDirection="Columns" Grid.Column="2" Height="Auto" Width="4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"/> 
    <Button/> 
</Grid> 
+0

nie, nie miałem. Wygląda to na przesadę dla linii. Również ten przykład powoduje zmianę rozmiaru poprzedniego przycisku, co jest niepożądane. – Bob

+0

istnieje dodatkowa definicja kolumny i powinna być ona szersza niż wysokość. –

1

Możesz użyć separatora, jeśli styl został poprawnie ustawiony. Domyślnie tworzy poziomą linię. Trzeba zastosować inną stylizację, aby była pionowa. Zobacz ten post na jak projektować je jako pionowej linii w WPF Grid:

CodeProject discussion

Dyskusja wspomina również, że StatusBar stosuje pewne elementy stylizacji do separatora, tak długo jak nie zawinąć je w StatusBarItems. Być może StackPanel robi coś podobnego.

20

W przypadku, ktoś inny potyka się na to, najprostszym rozwiązaniem:

<Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" /> 
+0

Dokładnie to, czego potrzebowałem. Dzięki! – MuiBienCarlota