C# 在按钮上的两个图像之间拉伸文本块
我有两个堆叠的按钮,顶部的按钮在文本块的左侧和右侧有图像。底部按钮左侧有一个图像,右侧有一个文本块。需要将顶部按钮上的文本块居中并拉伸,以填充两个图像之间的空间。如何做到这一点C# 在按钮上的两个图像之间拉伸文本块,c#,wpf,xaml,C#,Wpf,Xaml,我有两个堆叠的按钮,顶部的按钮在文本块的左侧和右侧有图像。底部按钮左侧有一个图像,右侧有一个文本块。需要将顶部按钮上的文本块居中并拉伸,以填充两个图像之间的空间。如何做到这一点 <ScrollViewer> <Grid> <Grid.Background> <SolidColorBrush Color="{DynamicResource {x:Static SystemColors.ControlLight
<ScrollViewer>
<Grid>
<Grid.Background>
<SolidColorBrush Color="{DynamicResource {x:Static SystemColors.ControlLightColorKey}}"/>
</Grid.Background>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Button
HorizontalContentAlignment="Stretch"
Grid.Row="0"
Grid.Column="1"
Margin="2"
Height="{Binding Height, ElementName=Tb}"
Click="Button1_Click">
<!---->
<DockPanel>
<Image
Source="/images/block_arrow_left.png"
Grid.Row="0"
Grid.Column="0"
Height="{Binding ActualHeight, ElementName=Tb}"
Margin="0"
VerticalAlignment="Center"
HorizontalAlignment="Left">
</Image>
<TextBlock
x:Name="Tb"
Padding="5"
Grid.Row="0"
Grid.Column="1"
FontSize="14"
VerticalAlignment="Center"
Text="button1"/>
<Image
Source="/images/block_arrow_left.png"
Grid.Row="0"
Grid.Column="4"
Height="{Binding ActualHeight, ElementName=Tb}"
Margin="0"
VerticalAlignment="Center"
HorizontalAlignment="Right">
</Image>
</DockPanel>
</Button>
<Button
HorizontalContentAlignment="Stretch"
Grid.Row="1"
Grid.Column="1"
Margin="2"
Height="{Binding Height, ElementName=Tb}"
Click="Button2_Click">
<DockPanel>
<Image
Source="images/block_arrow_left.png"
VerticalAlignment="Center"
Grid.Row="1"
Grid.Column="0"
Height="{Binding ActualHeight, ElementName=Tb}" >
</Image>
<TextBlock
Padding="5"
Grid.Row="1"
Grid.Column="1"
FontSize="14"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="button22222222222222">
</TextBlock>
</DockPanel>
</Button>
</Grid>
</ScrollViewer>
将
DockPanel
替换为网格
,给网格
三列,将文本块
放在中间一栏,并将水平对齐
属性设置为拉伸
:
<Button
HorizontalContentAlignment="Stretch"
Grid.Row="0"
Grid.Column="1"
Margin="2"
Height="{Binding Height, ElementName=Tb}"
Click="Button1_Click">
<!---->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image
Source="/images/block_arrow_left.png"
Grid.Column="0"
Height="{Binding ActualHeight, ElementName=Tb}"
VerticalAlignment="Center"
HorizontalAlignment="Center">
</Image>
<TextBlock
x:Name="Tb"
Padding="5"
Grid.Column="1"
FontSize="14"
VerticalAlignment="Center"
HorizontalAlignment="Stretch"
Text="button1"/>
<Image
Source="/images/block_arrow_left.png"
Grid.Column="2"
Height="{Binding ActualHeight, ElementName=Tb}"
VerticalAlignment="Center"
HorizontalAlignment="Center">
</Image>
</Grid>
</Button>
谢谢,杰森。现在工作。您的更改需要发布需要水平对齐从“拉伸”更改为“中心”。需要在文本块中进行更改。@namg_Enger我认为您的问题是希望垂直居中,水平拉伸,因为您的问题是:“拉伸以填充两幅图像之间的空间”是,我最初的问题陈述在定心方面不清楚。再次感谢你的帮助。