3

私は次のものを持っています:

<DockPanel Height="25" HorizontalAlignment="Stretch">
    <Button Content="Add" x:Name="bAdd" DockPanel.Dock="Left" />
    <Button Content="Remove" x:Name="bRemove" DockPanel.Dock="Right" />
</DockPanel>

Widthボタンのプロパティを手動で設定せずに、両方のボタンの幅を同じにする方法を誰かに提案してもらえますか?

4

3 に答える 3

9

プロパティを絶対に設定したくない場合はWidth、次のように使用できますGrid

<Grid Height="25" HorizontalAlignment="Stretch">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Button Grid.Column="0" Content="Add" x:Name="bAdd" />
    <Button Grid.Column="1" Content="Remove" x:Name="bRemove" />
</Grid>

彼らは両方ともWidthこの方法で同じになります

于 2012-12-31T21:42:34.820 に答える
0

@Amirの回答に加えて、Visibilityをバインドすることでボタンの数を動的に制御できます。

<UniformGrid Rows="1">
 <Button Content="Ok" Visiblity="{Binding IsShowOkayButton, Converter={...}"/>
 <Button Content="Cancel" Visiblity="{Binding IsShowCancelButton, Converter={...}}"/>
</UniformGrid>

列挙型で使用: (ConfirmType と IsShowCancelButton が同じ ViewModel にあると仮定)

public enum ConfirmType { Confirm, ConfirmOrCancel }

public ConfirmType ConfirmType { get => _ConfirmType; 
            set {
                switch (_ConfirmType)
                {
                    case ConfirmType.Confirm:
                        IsShowCancelButton = false;
                        break;
                    case ConfirmType.ConfirmOrCancel:
                        IsShowCancelButton = true;
                        break;
                }
                // Your RaisePropertyChanged code here
            }
        }
于 2021-11-10T01:41:29.840 に答える