やる気駆動型エンジニアの備忘録

WPF(XAML+C#)の話題を中心に.NET/Android/CI やたまに趣味に関するブログです

2016-01-01から1年間の記事一覧

WPFのCalendarコントロールをカスタマイズ

WPFのCalendarコントロールは日付を選択する場合に便利ですが、標準ではサポートされていない機能があります。 例えば土、日、祝日の場合に文字色を変更するなど。 日本国内限定の使用とはいえ、地味に欲しい機能ではあります。 ただ、Calendarコントロール…

Staticなフィールドをバインドするには

WPF

WPFではViewのDataContextからプロパティをバインドしてデータの入出力ができますが、 staticフィールドのバインドも可能になっています。例えば、DateTime.Todayをバインドする場合は次のようになります。 <TextBlock Text="{Binding Source={x:Static system:DateTime.Today}, Mode=OneWay, StringFormat={}{0:yyyy/MM/dd(dddd)}, ConverterCulture=ja}" /> Binding Source= の部分をx:Static system:DateTi…</textblock>

OnRenderで再描画されない現象と対策

WPF

ハマったのでメモWPFアプリケーションであるコントロールをXamlではなくOnRenderメソッドをオーバーライドして自前で描画処理を実装していました。 ビルド、実行して問題なく動いていましたが、あることをするとOnRenderメソッドが呼ばれないことが発覚しま…

TimeSpan型のStringFormatの設定

WPF

WPF でTimeSpan 型のプロパティをバインドした際のStringFormat を忘れてハマったのでメモ。 DateTime 型と表記が異なる上にバインドの設定ウィンドウに出てこないので割と忘れます。 <TextBlock Text="{Binding TimeSpan, StringFormat={}{0:hh\\:mm\\:ss\\.fff}, ConverterCulture=ja-jP}" /> コロンなどの記号の前に'\'を2個入れましょう。ついでなのでDateTime </textblock>…

Visual Studio で便利な拡張機能 その4

Visual Studio であると便利(これがないと生きていけない)拡張機能を紹介します。 ここで紹介する拡張機能は、基本的にVisual Studio 2013/2015 Community 上で使用可能であることを確認しています。 Xaml Style ダウンロードページ visualstudiogallery.m…

Visual Studio で便利な拡張機能 その3

Visual Studio であると便利(これがないと生きていけない)拡張機能を紹介します。 ここで紹介する拡張機能は、基本的にVisual Studio 2013/2015 Community 上で使用可能であることを確認しています。Ghost Docダウンロードページ submain.com※画面右[Downl…

Visual Studio で便利な拡張機能 その2

Visual Studio であると便利(これがないと生きていけない)拡張機能を紹介します。 ここで紹介する拡張機能は、基本的にVisual Studio 2013/2015 Community 上で使用可能であることを確認しています。VSCommandsダウンロードページ visualstudiogallery.msd…

Visual Studio で便利な拡張機能 その1

Visual Studio であると便利(これがないと生きていけない)拡張機能を紹介します。 ここで紹介する拡張機能は、基本的にVisual Studio 2013/2015 Community 上で使用可能であることを確認しています。Productivity Power Toolsダウンロードページ visualstu…

WPFパフォーマンス改善その2.アニメーションのパフォーマンス改善策

WPF

ここではWPF のアニメーションの動作改善策について記述します。WPF のアニメーションは簡単に作成できる反面、最適化を実施しない場合だと無制限にCPU/GPU パワーを使用し続けます。 アニメーションにリソースを割かれると、それにともなって他のユーザー…

WPFパフォーマンス改善その1. 初期表示(描画)速度の改善策

WPF

初期表示(描画)速度の改善策 ここでは初期表示、つまり画面をインスタンス化してから描画されるまでの時間を短縮するための改善策や 画面の再描画処理時間の短縮方法を記述します。

WPFパフォーマンスの調整について

WPF

先日、仕事でWPF のパフォーマンス調整をしました。 その際に参考になった記事や対策をまとめました。 ここでは、WPFのパフォーマンス改善のためのガイドラインやTipsなどを記述します。 WPFの動作が遅くなる理由は多岐にわたり、かつ複合的な要因がある場合…

StoryboardのStopに失敗する場合の対処法

WPF

WPFでStoryboardをコードビハインドで終了させる際に、詰まったポイントをメモメモ private void StartButton_Click(object sender, EventArgs e) { // storyboard には既にリソース上のStoryboard を設定しているものとする。 storyboard.Start(Ellipse1); …

DataGridColumnにデータバインドするには

業務アプリを制作する際にDataGridのある列の表示非表示を切り替えたいケースがあると思います。 表示だけでなく、ヘッダーや幅を変えたいなどの場合も同様です。 しかし、少し手を加えなければDataGridColumn のバインディングは不可能です。 (なぜかは後…