Laden...

Stretch bei Custom-Template Groupbox begrenzen

Erstellt von Fabian E. vor 12 Jahren Letzter Beitrag vor 12 Jahren 983 Views
F
Fabian E. Themenstarter:in
258 Beiträge seit 2008
vor 12 Jahren
Stretch bei Custom-Template Groupbox begrenzen

Hallo,
ich habe zuzeit folgendes Problem: In einem Window mit einer Ribbonbar möchte ich mir Office-like Groupboxes für den Backstage-Bereich erstellen.
das mache ich über ein Template für die normale Groupbox.
Hier der Code dazu:

<Style x:Key="BackStageGroupStyle"
               TargetType="{x:Type GroupBox}">
            <Setter Property="HorizontalAlignment"
                    Value="Left" />
            <Setter Property="VerticalAlignment"
                    Value="Top" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type GroupBox}">
                        <Grid SnapsToDevicePixels="true">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>

                            <Label Grid.Column="0"
                                   Grid.ColumnSpan="2"
                                   Content="{TemplateBinding Header}"
                                   FontWeight="Bold"
                                   FontSize="14.667"
                                   Foreground="#FF4D4D4D"
                                   HorizontalAlignment="Left" />
                            <Line Grid.Row="1"
                                  StrokeThickness="0.5"
                                  StrokeDashArray="6,4"
                                  Stroke="#FF414141"
                                  Margin="0,0,0,10"
                                  Grid.Column="0"
                                  Grid.ColumnSpan="2"
                                  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                  X1="{Binding RelativeSource={RelativeSource Mode=Self},Path=ActualWidth}" />
                            <ContentPresenter Grid.Column="1"
                                              Grid.Row="2"
                                              SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                              Margin="15,0,0,0" />
                            <Line Grid.Column="3"
                                  Grid.Row="0"
                                  Grid.RowSpan="3"
                                  StrokeThickness="0.1"
                                  Y1="{Binding RelativeSource={RelativeSource Mode=Self},Path=ActualHeight}"
                                  Margin="6,0,12,0">
                                <Line.Stroke>
                                    <LinearGradientBrush EndPoint="0.5,1"
                                                         StartPoint="0.5,0">
                                        <GradientStop Color="#00838383"
                                                      Offset="0" />
                                        <GradientStop Color="#00BCBCBC"
                                                      Offset="1" />
                                        <GradientStop Color="#FF292929"
                                                      Offset="0.057" />
                                        <GradientStop Color="#FF313131"
                                                      Offset="0.948" />
                                    </LinearGradientBrush>
                                </Line.Stroke>
                            </Line>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

Das sieht auch schon ganz gut aus so. Ein Problem habe ich allerdings.
Wenn ich nun eine Groupbox mit diesem Style in ein Grid packe (zusammen mit ein paar anderen) und HorizontalAlignment auf "Stretch" stelle, dann stretched er mir die Groupbox über das ganze Window und interessiert sich nicht für die Größe des Grids.

Entferne ich den Style dann verählt sich die Groupbox genau wie erwartet. Sie wird genau so groß, dass sie die ganze Zelle ausfüllt, vergrößert sie aber nicht.

Wie kann ich dieses Verhalten bei meinem Style erreichen?