web-dev-qa-db-ja.com

テキストボックス、ラベル、ボタンを非表示にする方法C#WPF

ボタンがクリックされるとすぐに、いくつかのテキストボックス、ラベル、およびボタンを非表示にしたいのですが...しかし、何らかの理由で、私のコードはこの効果を引き起こしていないようです。何も起こらないようです。 WPFを使用しています。

これが私のコードです:

private void doSomething_Click(object sender, RoutedEventArgs e)
    {

        Name.Visibility = Visibility.Hidden; 

    }

このコードは機能していないようです..何かアイデアはありますか?

8
BigBug

コードは正常に機能しているようです。他のすべてが消えた後、「Signinin ...」ラベルが表示されます。すべてのコードを.xaml.csファイルと.xamlファイルから新しいプロジェクトにコピーすることをお勧めしますが、最初の行をコピーしないようにしてください"<Window x:Class="..."新しいプロジェクトでクラス名が同じでない場合、エラーが発生する可能性があるためです。

Xamlコードの場合、Windowsフォームアプリケーションを設計するのと同じように考えないことをお勧めします。 WPFにはレイアウトシステムがあり、ウィンドウのサイズを変更するときに要素の方向を変更したり、サイズを変更したりします。したがって、marginプロパティに正確な数値を指定して、座標を指定するようにしないでください。グリッドを作成し、要素ごとに行または列を作成してから、水平または垂直の配置またはマージンを設定します。古いウィンドウフォームの方法とは異なる考え。

7
Cobold

_Visibility.Collapsed_は必要なものであり、_Visibility.Hidden_ではないと思います。

編集:親要素/コンポーネントのUpdateLayout()メソッドでこのコードをフォローアップしようとしましたか?

11

私はあなたのコードを実行しました...そしてそれは私にとって素晴らしい働きをしています。 (変数名を除いて)何も変更していないので、VSのバグだと思います。

言ったように nikolamm94 _connect_Click_の最後にthis.UpdateLayout();を追加してみてください。試しましたが、まだ正常に動作しています。または、新しいVSプロジェクトを作成することもできますが、それはすでに数回機能していました。

申し訳ありませんが、私の答えは最も役に立ちません。代わりにコメントを入れたかったのですが、十分な評判がありません:/

4
Flanfl

参照してください: https://msdn.Microsoft.com/en-us/library/ms748821(v = vs.85).aspx

Visibleに設定:tb1.Visibility = System.Windows.Visibility.Visible;

非表示に設定:tb1.Visibility = System.Windows.Visibility.Hidden;

0
Jay

[プロパティ]-> [外観]-> [表示]に移動し、[非表示]に設定すると、テキストボックスを非表示にできます。

0
Kanomdook