タグ

ブックマーク / hilapon.hatenadiary.org (4)

  • WPF の Dispatcher について勉強してみた - 周回遅れのブルース

    WPF の Dispatcher について勉強がてら自分なりに得た理解をまとめてみました。 WPF アプリケーションは、レンダリング(描画)用とユーザーインターフェイス用の2つのスレッドを用いて動作します。 レンダリングスレッドはバックグラウンド動作のため、開発者はアクセスできません。開発者が扱えるのは、ユーザーインターフェイス用スレッド(以下 UIスレッド)のみとなります。そしてこの UI スレッドは、パフォーマンス上の理由により(スレッドセーフにするとオーバーヘッドが発生し、描画遅延等の問題を起こすためか)スレッドセーフに設計されてないのが特徴です。 WPFでは、ほとんどのオブジェクトが UI スレッド上で動作する「シングルスレッドモデル」を採用しているため、UI スレッド外からそのオブジェクトにアクセスすると、例外が発生します。 例えば、以下のように ListBox へのアイテム追加

    WPF の Dispatcher について勉強してみた - 周回遅れのブルース
    noazoh
    noazoh 2013/04/24
    時間のかかる処理を別スレッドで実行する方法
  • Q058. XamDataGrid でセルに収まらない値をツールチップで表示するには? - 周回遅れのブルース

    A. いささか凝った方法ですが、MultiDataTrigger と IMultiValueConverter を使って設定します。 発端と問題 WindowsForms の DataGridView の場合、セルからはみ出したデータにマウス持ってくとツールチップが表示されるのですが、残念ながら WPF の標準 DataGrid も XamDataGrid もこの UI はサポートされてません。 当初どうしていいか全く判らず、苦肉の策で <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Value}"/> <Style.Triggers> <DataTrigger Binding="{Binding RelativeSource={x:Static R

    Q058. XamDataGrid でセルに収まらない値をツールチップで表示するには? - 周回遅れのブルース
    noazoh
    noazoh 2012/01/18
    DataTrigger
  • Window のシステムメニューを変更するビヘイビア(C#版) - 周回遅れのブルース

    7/24 のエントリ Q048. Window の最小化・最大化ボタンを無効にするには? で公開したビヘイビアですが、諸般の事情により VB から C# で書き直すことになりました。そこで一応 C# 版も上げときます。なんかの参考になれば幸いです。 using System; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Interop; namespace tenz.Tools.Presentation { [Flags] public enum WindowStyleFlag : uint { WS_NONE = 0x00000000, WS_SYSMENU = 0x00080000, WS_MINIMIZEBOX = 0x00020000, WS_MAXIMIZEBOX

    Window のシステムメニューを変更するビヘイビア(C#版) - 周回遅れのブルース
    noazoh
    noazoh 2011/11/09
    WindowのControlBoxを無効にする。
  • WPF 超入門 〜「WindowsForms 開発者のための WPF 早わかりQ&A」 - 周回遅れのブルース

    WPF ですが、Windows Forms から移行した人は、私も含め要領掴めない人が多いようです。特に VB ユーザーはかなり苦戦してるんじゃないでしょうか?原因は、Windows Forms のプログラミングスタイルを引きずってるせいだと思います。 (#2010/01/17 追記 : 最近になって、あまりに Forms を無視した設計にし過ぎたせいだと思えるようになってきた・・・) とはいえ、いったん頭をリセットしてといっても、長年身体に染み込んだスタイルはそうそう変えられるものじゃありません。また Forms で簡単にできたことが、WPF では容易にできなくなった機能も一部確かにかなりあります。そこで Forms 開発者のために Q&A 形式で少し纏めてみました。以下、参考にしてください。 なお回答は、詳しい解説を省き簡潔なものにしております。詳しくは、回答を基に検索して調べてみてく

    WPF 超入門 〜「WindowsForms 開発者のための WPF 早わかりQ&A」 - 周回遅れのブルース
    noazoh
    noazoh 2010/12/20
  • 1