我有一个ContentControl的样式,我想在我当前有一个Border的地方使用.当我使用它,子控件不会伸展到填充,只需要少量的空间.我已经尝试过将HorizontalAlignment =“Stretch”应用于所有内容,但是它不起作用.怎么了?
<Style x:Key="GradientPanel" targettype="ContentControl"> <Setter Property="Template"> <Setter.Value> <ControlTemplate targettype="ContentControl"> <Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> <Rectangle RadiusY="10" RadiusX="10" stroke="Black" strokeThickness="0"> <Rectangle.Effect> <DropShadowEffect Opacity="0.56" ShadowDepth="1" BlurRadius="3" /> </Rectangle.Effect> <Rectangle.Fill> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFE1EAF3"/> <GradientStop Color="White" Offset="1"/> <GradientStop Color="#FFFAFBFD" Offset="1"/> </LinearGradientBrush> </Rectangle.Fill> </Rectangle> <ContentPresenter Margin="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
…
之前(工作正常):
<Border Style="{StaticResource SearchContainerBorder}" > <Grid Margin="5"> <Grid.RowDeFinitions> <RowDeFinition /> </Grid.RowDeFinitions> <Grid.ColumnDeFinitions> <ColumnDeFinition Width="*" /> <ColumnDeFinition Width="Auto" /> </Grid.ColumnDeFinitions> <ToggleButton Style="{StaticResource ToggleButtonExpanderStyle}" Grid.Row="0" Grid.Column="1" Height="25" Width ="25" HorizontalAlignment="Center" VerticalAlignment="Top" /> <ContentControl Grid.Row="0" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </Grid> </Border>
之后(用ContentControl替换Border):
<ContentControl Style="{StaticResource GradPanel}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Grid Margin="5"> <Grid.RowDeFinitions> <RowDeFinition /> </Grid.RowDeFinitions> <Grid.ColumnDeFinitions> <ColumnDeFinition Width="*" /> <ColumnDeFinition Width="Auto" /> </Grid.ColumnDeFinitions> <ToggleButton Style="{StaticResource ToggleButtonExpanderStyle}" Grid.Row="0" Grid.Column="1" Height="25" Width ="25" HorizontalAlignment="Center" VerticalAlignment="Top" /> <ContentControl Grid.Row="0" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </Grid> </ContentControl>
解决方法
您需要在外部ContentControl上设置HorizontalContentAlignment =“Stretch”和VerticalContentAlignment =“Stretch”设置.
例如第一行应该是:
<ContentControl Style="{StaticResource GradPanel}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" >
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。