SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

.NET Core 3で始めるWPFアプリ開発

.NET Core 3で始めるWPFアプリ開発――Hello, WPF!

.NET Core 3で始めるWPFアプリ開発 第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

コントロールに変数名を付ける

 コードビハインドからアクセスできるように、XAML側でコントロールに変数名を付けます。変数名はx:Name属性で指定します。次のコードのようにTextBlockコントロールに変数名を付けてみましょう。なお、コントロールはただのName属性も持っています。紛らわしいのですが、変数名はx:名前空間プレフィックスが付いたx:Nameの方です。

TextBlockコントロールに変数名を付ける(MainWindow.xaml
  <Grid>
    <TextBlock x:Name="Text1" FontSize="64">Hello, WPF !</TextBlock>
  </Grid>

 これでビルドすると、コードビハインドのクラスにText1という名前のメンバー変数が自動的に生成されます。このメンバー変数が記述される場所はビルド時に自動生成されるファイルで、ソリューションエクスプローラーの既定では表示されません。気になる人は、「MainWindow.xaml.cs」ファイルの中でInitializeComponentメソッドを呼び出しているところにカーソルを置いて、[F12]キーを押してその定義場所を表示させてみてください。そうすると表示される「MainWindow.g.i.cs」ファイルの中にメンバー変数の宣言があります。

コードビハインドからコントロールのプロパティを変更する

 TextBlockの文字色と表示位置を、コードビハインドから変更してみましょう。

 ウィンドウが初めて表示されるときにコントロールを操作できるタイミングはいくつかありますが、ここでは「MainWindow.xaml.cs」ファイルのコンストラクターの最後で行ってみましょう。TextBlockの文字色と表示位置の変更は、次のコードの太字の部分のようになります。

コンストラクターの中でTextBlockの文字色と表示位置を変更する(MainWindow.xaml.cs
  public partial class MainWindow : Window
  {
    public MainWindow()
    {
      InitializeComponent();

      // TextBlockの前景色(=文字色)と、水平/垂直位置
      Text1.Foreground = new SolidColorBrush(Color.FromRgb(0x00, 0xA2, 0xE8));
      Text1.HorizontalAlignment = HorizontalAlignment.Center;
      Text1.VerticalAlignment = VerticalAlignment.Center;
    }
  }

 コードの細かい説明は省略しますが、コントロールのプロパティの型に合わせたオブジェクトをこのようにセットする必要があります。

 なお、変数名を付けなくてもコードビハインドから簡単にアクセスできるコントロールが1つだけあります。それは自分自身、つまり、ウィンドウそのものです。XAMLではWindowコントロールとして表現されています。例えば、次のコードのようにしてウィンドウのタイトルを変更できます。

コンストラクターの中でウィンドウのタイトルを変更する(MainWindow.xaml.cs
      // ウィンドウのタイトルを変更(この行もコンストラクターの末尾に追加する)
      this.Title += " - .NET CoreでWPF";

 ここまででデバッグ実行してみると、次の画像のようになります。

コードビハインドからコントロールのプロパティを変更できた
コードビハインドからコントロールのプロパティを変更できた

 ただし、このようにウィンドウが表示されている間はずっと同じで変化しないコントロールのプロパティを、コードビハインドから設定するのは得策ではありません。次のボタンを追加する例を見ていただければ、それが分かります。コードビハインドからコントロールのプロパティを変更するのは、動的に変化する場合だけにしたほうが良いです。

次のページ
ボタンを追加する

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
.NET Core 3で始めるWPFアプリ開発連載記事一覧
この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11809 2019/12/23 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング