как скрыть текстовое поле в WP7 - PullRequest
0 голосов
/ 22 февраля 2012

Я хочу иметь три текстовых поля (для ввода текста будет отображаться только одно из них). Текстовое поле для ввода текста выбирается кнопками. Я устанавливаю свойство непрозрачности для текстового поля 0.0, чтобы скрыть, чтобы установить непрозрачность для показа 1,0.

На странице xaml:

<StackPanel Grid.Row="0" Orientation="Horizontal">
            <Button x:Name="btnGood" HorizontalAlignment="Center" 
                        Content="Good" 
                        Click="Toggle_Click">
            </Button>
            <Button x:Name="btnBad" HorizontalAlignment="Center" 
                        Content="Bad"  
                        Click="Toggle_Click">
            </Button>
            <Button x:Name="btnDetail" HorizontalAlignment="Center" 
                        Content="Detail" 
                        Click="Toggle_Click">
            </Button>
        </StackPanel>
        <Grid Grid.Row="1">
            <TextBox x:Name="txtDetail" AcceptsReturn="True" 
                        TextWrapping="Wrap" />
            <TextBox x:Name="txtBad" AcceptsReturn="True" 
                        TextWrapping="Wrap" Opacity="0.0"/>
            <TextBox x:Name="txtGood" AcceptsReturn="True" 
                        TextWrapping="Wrap" Opacity="0.0"/>

        </Grid>

В коде:

private void Toggle_Click(object sender, RoutedEventArgs e)
    {
        Button btnSender = (Button)sender;
        string id = btnSender.Content.ToString();
        switch (id)
        {
            case "Good":
                {
                    txtDetail.Opacity = 0.0;
                    txtBad.Opacity = 0.0;
                    txtGood.Opacity = 1.0;
                }
                break;
            case "Bad":
                {
                    txtDetail.Opacity = 0.0;
                    txtGood.Opacity = 0.0;
                    txtBad.Opacity = 1.0;
                }
                break;
            case "Detail":
                {
                    txtBad.Opacity = 0.0;
                    txtGood.Opacity = 0.0;
                    txtDetail.Opacity = 1.0;
                }
                break;
            default:
                break;
        }
    }

Проблема: при нажатии хорошей кнопки txtGood textboxотображается и может видеть напечатанные символы.Но когда нажата кнопка «плохо» или «подробно», тексты вводятся в txtGood, и не отображается пустое текстовое поле только тусклого цвета.Но это должно быть введено в соответствующие текстовые поля, и это должно быть видно пользователю.Как можно исправить эту проблему?

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Почему вы не используете txtBad.Visibility = Visibility.Collapsed?Это лучший способ скрыть контент на экране.

2 голосов
/ 22 февраля 2012

Что не так с видимостью? Почему вы используете непрозрачность?

...