it技術:dotnet:wpf開発
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
it技術:dotnet:wpf開発 [2017/11/10 16:35] – yajuadmin | it技術:dotnet:wpf開発 [2017/11/21 11:34] – [Bindingのソースが更新されない] yajuadmin | ||
---|---|---|---|
行 8: | 行 8: | ||
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
+ | |||
===== Windows Formsとの違い ===== | ===== Windows Formsとの違い ===== | ||
==== メリット ==== | ==== メリット ==== | ||
行 100: | 行 101: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ==== 表示文字幅の取得 ==== | ||
+ | 画面に表示される文字の幅を取得する。\\ | ||
+ | [[http:// | ||
+ | |||
+ | <code csharp sample> | ||
+ | Typeface typeface = new Typeface(txtTest.FontFamily, | ||
+ | double len = MeasureString(" | ||
+ | |||
+ | /// < | ||
+ | /// 表示文字幅を取得する | ||
+ | /// </ | ||
+ | /// <param name=" | ||
+ | /// <param name=" | ||
+ | /// <param name=" | ||
+ | /// < | ||
+ | private Size MeasureString(string text, double fontSize, Typeface typeface) | ||
+ | { | ||
+ | var ft = new FormattedText(text, | ||
+ | | ||
+ | | ||
+ | |||
+ | return new Size(ft.Width, | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Buttonのクリックイベントを発生させる ==== | ||
+ | WPFには、Windows FormにあったPerformClickメソッドが存在しない。\\ | ||
+ | IInvokeProviderインターフェースを利用するには、参照の追加の参照マネージャーのアセンブリから「UIAutomationProvider.dll」を参照する。\\ | ||
+ | [[http:// | ||
+ | [[http:// | ||
+ | |||
+ | ==== 最大化を禁止させる ==== | ||
+ | <code csharp sample> | ||
+ | // | ||
+ | this.ResizeMode = ResizeMode.CanMinimize; | ||
+ | </ | ||
+ | [[http:// | ||
+ | |||
+ | ==== Bindingのソースが更新されない ==== | ||
+ | ViewModelにINotifyPropertyChangedインターフェイスを実装する必要がある。\\ | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | INotifyPropertyChangedを実装はイケてないので、ReactivePropertyを使用する。\\ | ||
+ | NuGetから「ReactiveProperty 3.6.0」で入手する。 | ||
+ | |||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | |||
==== メモ ==== | ==== メモ ==== | ||
行 110: | 行 162: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | * [[http:// |
it技術/dotnet/wpf開発.txt · 最終更新: 2018/01/17 18:19 by yajuadmin