タグ

ブックマーク / qiita.com/Kokudori (3)

  • Livetで始めるWPF(ざっくり)入門 その7 - Qiita

    GUIとスレッド まず、WPF関係ない話ですが、一般にGUIはシングルスレッドモデルを前提にしてます。つまり、UIコントロールの生成、変更、削除は単一のスレッドからのみに限定されてます。これは主に性能のためです。ので、UIコントロールを触るためのスレッドをUIスレッドとか言ったりします。 WPFも当然ながらこの制約を受けます。じゃあWPFだとマルチスレッド無理なの?という話ではなく、あくまでUIに関する部分のみが単一スレッドなだけです。ので、重い処理とかは別スレッドでやって、処理が終わったらUIスレッドに戻ってUIを更新、みたいな感じになります。Webで言うところのWeb Workersみたいな感じです。余談ですが、GUIアプリとかで固まってUIの応答さえしなくなるものがあったりしますが、あれはUIスレッドで重い処理をしちゃってるからです。 さて、単一のUIスレッド的なものをグローバルに持

    Livetで始めるWPF(ざっくり)入門 その7 - Qiita
    kawacho
    kawacho 2015/03/06
    UIスレッド、Dispatcher
  • Livetで始めるWPF(ざっくり)入門 その6 - Qiita

    はじめに 前回やったトリガーはWPF標準なもので、良くも悪くも基的なやつです。できることが少ないです。例えば、ボタンのマウスオーバー時にプロパティを変更したりしましたが、IsMouseOverプロパティの変更を監視することで実現していました。 <Style TargetType="Button"> <Setter.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="Blue"/> </Trigger> </Setter.Triggers> </Style> これ、IsMouseOverプロパティがない場合はどうしましょう?実はEventTriggerというものがあるんですが、アニメーション専門だったりでちょっとアレです。 インタラクショントリガーというのは

    Livetで始めるWPF(ざっくり)入門 その6 - Qiita
  • Livetで始めるWPF(ざっくり)入門 その3 - Qiita

    前回までの続き View<->ViewModel<->Model間の通信について、前回はViewModel<->Modelをやりました。ので、今回はView<->ViewModelです。MVVMというか、WPFでしんどいのはViewです。Viewが絡むと、しんどそうだなあと思っておけば良いと思います。まあ別にWPFに限らずViewは大抵の分野でしんどいです。なのでMVVMやらMVCやらでViewを出来る限り追いだそうとしている感じです。 前回も述べましたが、データバインディングはView<->ViewModel間の通信ですが、今回はそれ以外の方法を述べます。まあ、より能動的な通信を扱います。 View<-ViewModel ViewModelがViewを呼び出したい最もポピュラーなケースは画面遷移だと思います。こればかりはデータバインディングではどうしようもありません。で、どうするかですが

    Livetで始めるWPF(ざっくり)入門 その3 - Qiita
  • 1