Как сделать элемент управления видимым, когда WindowState развернуто и свернуто при нормальном режиме? - PullRequest
0 голосов
/ 20 августа 2011

Это мой взгляд, я хочу свернуть вторую Rectange в Button, когда состояние windows нормальное, и наоборот. По ошибке я изменил имя команды на ShowCommand, я пытаюсь, но не могу.

xaml:

<StackPanel>
    <WrapPanel HorizontalAlignment="Center">
        <Button Width="30"  Height="20" Margin="0,30" Command="{Binding MinimizeCommand}" >
            <Rectangle Width="8" Stroke="Black" StrokeThickness="2"/>
        </Button>
        <Button Width="30" Height="20" Command="{Binding ShowCommand}" >
            <Grid >
                <Rectangle Width="8" Height="8" Stroke="Black" StrokeThickness="2"
                           HorizontalAlignment="Right"
                           Margin="0,3,5,3" />                        
                <Rectangle Visibility="{Binding MaximizeButtonVisibility}" Stroke="Black"
                           x:Name="RectMaxButton" Margin="10,0,0,8" Width="8" Height="8"
                           StrokeThickness="2" />
            </Grid>
        </Button>
        <Button Width="30" Height="20" Margin="0,30" Command="{Binding ExitCommand}"
                FontWeight="Bold">X</Button>
    </WrapPanel>           
</StackPanel>

CS:

public ICommand ShowCommand
{
    get
    {
        if (_showCommand == null)
            _showCommand = new RelayCommand(para => CanExit(), param => ToggleMaximizeWindwo());
        return _showCommand;
    }
}

public Visibility MaximizeButtonVisibility
{           
    get
    {
        this._maximizeButtonVisibility = Application.Current.MainWindow.WindowState == WindowState.Maximized ? Visibility.Visible : Visibility.Collapsed;
        return this._maximizeButtonVisibility; 
    }
    set
    {
        this._maximizeButtonVisibility = value;
        base.OnPropertyChanged("MaximizeButtonVisility");
    }
}

private void ToggleMaximizeWindwo()
{
    if (Application.Current.MainWindow.WindowState == WindowState.Normal)
    {
        Application.Current.MainWindow.WindowState = WindowState.Maximized;
        MaximizeButtonVisibility = Visibility.Visible;
    }
    else
    {
        Application.Current.MainWindow.WindowState = WindowState.Normal;
        MaximizeButtonVisibility = Visibility.Collapsed;
    }
}

1 Ответ

0 голосов
/ 20 августа 2011

Похоже, у вас есть опечатка в вашем установщике MaximizeButtonVisibility в OnPropertyChanged.Вы получаете его как «MaximizeButtonVisility», когда оно должно быть «MaximizeButtonVisibility».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...