You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何缩小WPF代码中Analyze与ShowMap按钮间的间距?

图片说明

我试过各种方法缩小Analyze和ShowMap两个按钮的间距,但效果还是如图所示。相关代码如下:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Label Content="Plot File" Grid.Column="0" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" />
    <TextBox x:Name="txtMultiBox" Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="1" VerticalAlignment="Top" HorizontalAlignment="Stretch" Margin="10,0,10,10" TextWrapping="Wrap" AcceptsReturn="True"/>
    <Button Style="{StaticResource Highlight}"   Content="Browse" x:Name="btnBrowse" Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" Click="btnBrowse_Click" />
    <Button Style="{StaticResource Highlight}"  Content="Analyze" x:Name="btnAnalyze" Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="left" Margin="10,10,5,7.5" Click="btnAnalyze_Click" />
    <Button Style="{StaticResource Highlight}" Visibility="Hidden"  Content="ShowMap" x:Name="btnShowmap" Grid.Column="2" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="left" Margin="5,10,10,10"  Click="btnShowmap_Click" />
    <Label Content="Parcels" Grid.Column="0" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,7.5,10,0" />
    <TreeView SelectedItemChanged="tvSections_SelectedItemChanged"  x:Name="tvSections" Grid.Column="0" Grid.Row="4" Margin="10,0,10,10" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
    <Label Content="Assosiated Sections" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,7.5,10,0" />
    <ListView x:Name="lsParcels" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="4" Margin="10,0,10,10" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="FID"  DisplayMemberBinding="{Binding Fid}"/>
                <GridViewColumn Header="ParcelId"  DisplayMemberBinding="{Binding ParcelId}"/>
            </GridView>
        </ListView.View>
    </ListView>
</Grid>

解决方法

问题核心是你把两个按钮分别放在了Grid的第1、2列,这两列都是宽度为*的等分列,按钮之间会隔着整列的空白空间。推荐以下两种高效的调整方式:

方法1:用StackPanel横向排列按钮(最灵活)

将两个按钮放在同一Grid列中,用StackPanel横向布局,通过Spacing属性直接控制按钮间距:

<!-- 替换原有的两个Button代码 -->
<StackPanel Grid.Column="1" Grid.Row="2" Orientation="Horizontal" Margin="10,10,10,10" Spacing="5">
    <Button Style="{StaticResource Highlight}" Content="Analyze" x:Name="btnAnalyze" VerticalAlignment="Center" Click="btnAnalyze_Click" />
    <Button Style="{StaticResource Highlight}" Visibility="Hidden" Content="ShowMap" x:Name="btnShowmap" VerticalAlignment="Center" Click="btnShowmap_Click" />
</StackPanel>

你可以根据需要修改Spacing的值来调整按钮间的距离。

方法2:调整Grid列宽度适配按钮

修改Grid的列定义,给按钮所在列设置自动宽度,避免多余空白:

<!-- 修改ColumnDefinitions -->
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<!-- 然后将两个按钮都放在第1列,调整Margin和排列 -->
<Button Style="{StaticResource Highlight}" Content="Analyze" x:Name="btnAnalyze" Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,10,5,7.5" Click="btnAnalyze_Click" />
<Button Style="{StaticResource Highlight}" Visibility="Hidden" Content="ShowMap" x:Name="btnShowmap" Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5,10,10,10" Click="btnShowmap_Click" />

内容的提问来源于stack exchange,提问作者peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 03:35:06