SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

WPF

ぼかした画像のBrushを作るマークアップ拡張

以前↓で書いた、ぼかしを強烈にかけた画像を高速にする方法ですが、 WPFで強めのブラーを高速にかける - SourceChord これを、Brushとして使えるようにしてみました。 マークアップ拡張も作ったので、以下のようにImageBrushを使うような感覚でぼかしの効い…

マークアップ拡張を作って、XAMLでグラデーションを簡単に書く方法

マークアップ拡張って、結構便利!! マークアップ拡張は初めて作ってみたけど、覚えておくと結構便利かも。マークアップ拡張については、以下のリンクが参考になりました。 http://okazuki.hatenablog.com/entry/20130103/1357205143 http://d.hatena.ne.jp/k…

WPFで強めのブラーを高速にかける

普通にぼかしを強めにかけてみる 背景画像として、ぼやけた画像を使いたいことって、結構あると思います。 で、普通にこれをやると、こんな感じだと思います。 <Window x:Class="WpfBaseTemplate1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Width="1024" Height="768"> <Grid> </grid></window>

VS2013向けのXAML Styler

XAML開発の定番拡張機能のXAML Stylerは、VS2013に対応してなくて残念に思ってたのですが、 XAML Stylerを、VS2013向けにビルドしなおして、VS Galleryに登録してくれた人がいるみたい。 Nico's digital footprint | Branching XAML Styler XAML Styler exte…

XAMLでズルいデザイン~その2・ズルいtext-shadow~

前回に引き続き、ズルいデザインで紹介されてた内容をWPFでマネしてみます。 今度は、文字の装飾をやってみたいと思います。 参考リンク ズルいデザイン(1):少ない手間と知識でそれなりに見せる、ズルいデザインテクニック (2/2) - @IT で、WPFでマネし…

XAMLでズルいデザイン~その1・ズルい線~

以前「ズルいデザイン」というスライドとかが話題になってましたが、その内容をWPFでマネしてみました。 参考リンク ズルいデザイン(1):少ない手間と知識でそれなりに見せる、ズルいデザインテクニック (1/2) - @IT ズルいデザインテクニック2013 + セミ…

WPFの開発用にコードスニペットを登録する

WPFのアプリ開発に役立ちそうなコードスニペットを作ってみました。 作ったのは、こんな感じのコードスニペットとか。 コードスニペットの作成方法は、↓の記事が参考になりました。 http://www.tk4.co.jp/develop/codesnippet/recipe.htmlコードスニペットの…

VSのプロジェクト・テンプレートを作成する

VisualStudioには、プロジェクトのテンプレートを、ウィザード形式で簡単に作る機能が備わっています。 で、さっそくWPF開発でよく使うファイルをまとめたテンプレートを作ってみました。テンプレートの作成には、↓の記事がとても参考になりました。 http://…

バインドしてるObservableCollectionを非UIスレッドから操作する

WPF4.5では、複数スレッドからのコレクション操作のサポートのために以下のメソッドが追加されました。 BindingOperations.EnableCollectionSynchronization メソッド (System.Windows.Data)これを使って、非UIスレッドからのObservableCollecion更新処理を…

Codeplex風デザインのボタンを作りました

Codeplexのボタンデザインを真似してみました。 出来上がったデザインはこんな感じ↓

キャプション付きの画像表示を行うサンプル

マウスオーバー時に、アニメーションしながらキャプション表示を行うControlTemplateを作ってみました。

Labelの上下と背景をグラデーションで装飾する

↓の記事で紹介されていた、テキストの上下と背景をグラデーションで装飾するというデザインを、WPFで真似してみました。 [CSS]テキストの天地に美しいグラデーションのボーダーと背景を適用するスタイルシート | コリス 結果はこんな感じ。

XAMLからViewModelのメソッドにバインドする~RelayCommand~

RelayCommand/DelegateCommand WPFなどのXAMLを用いたフレームワークでは、Commandを使ってXAMLからViewModelのメソッドを呼び出すためには、DelegateCommandとかRelayCommandと呼ばれるクラスを作ります。で、VMにこのコマンドのインスタンスを作成してXAML…

NavigationServiceを拡張してちょこっと便利にする

WPFのページ遷移で用いるNavigationServiceクラスですが、微妙に痒いところに手が届かない感じです。 そこで、拡張メソッドで便利メソッドを追加してみました。

Blendを使ってButtonのホバーエフェクトを作る Part5

Webサイトのナビゲーション風ボタンです。 ButtonのコンテンツにDropShadowEffectをかけて、ぼわっと光ってるように表示します。 こういう動作は、ButtonよりHyperLinkとして作った方が適切な気もするけど、 WPFのHyperLinkコントロール、使い勝手悪いし。。…

Blendを使ってButtonのホバーエフェクトを作る Part4

今回は、Web系のデザインでよくありそうなタイプのボタンを作ります。

Blendを使ってButtonのホバーエフェクトを作る Part3

ボタンのホバーエフェクト、さらに続きます。 今回も、xamlだけメモ。

Blendを使ってButtonのホバーエフェクトを作る Part2

昨日の続きで、また別のホバーエフェクトを真似してみました。 今回はblendの操作手順とかはなしで、xamlコードだけメモしときます。 てか、添付プロパティとかを多用してると、BlendのUI上からアニメーションの設定とかできない。。。 (ContentPresenter内…

Blendを使ってButtonのホバーエフェクトを作る

cssでボタンのホバーエフェクトを色々紹介している、以下の記事が面白かったので、WPFで真似してみました。 http://www.nxworld.net/tips/css-only-button-design-and-hover-effects.html cssよくわからんから、なんとなーく真似してるだけですが。。。W ↓…

NavigationWindowを使った時の、F5キーやBackSpaceなどのNavigationCommandsを無効にする

以前↓に書いたNavigationWindowですが、 http://d.hatena.ne.jp/minami_SC/20130831/1377942291 このWindowでは、F5キーでページの再読み込みをしたり、Backspaceで前のページに戻るなどのショートカットキーが効きます。

デスクトップ画面にコメントなどの落書きを書き込むアプリを作りました。

↓の動画みたいに、デスクトップ画面上でコメントなどを書き込むためのツールを作ってみました。 ↓コードはCodeplexに登録してみました。 DesktopAnnotator 一応、用途としては、以下のような使い方を想定しています。 ・プレゼンとかしてる時に、画面上に色…

WPFでフルスクリーン表示

フルスクリーン表示なアプリって時々作るので、備忘録としてメモ。WPFでのフルスクリーン表示をするときは、ウィンドウクラスに以下の設定をする。 プロパティ名 値 WindowStyle None WindowState Maximized Topmost True

独自のMessageBoxを作る Part2

MessageBoxはMessageBoxButton型の引数を受けることで、 表示するボタンの種類や、MessageBox.Show()メソッドの戻り値などの動作が変わります。今回は、その辺の実装を行います。

独自のMessageBoxを作る Part1

WPFでメッセージボックスを出したい場合、MessageBox.Showメソッドで表示することができます。 http://msdn.microsoft.com/ja-jp/library/system.windows.messagebox.aspx しかし、このメッセージボックス、微妙に使い勝手が悪い。。。 表示位置が常にディス…

XamlReader/XamlWriterでXAMLを読み書き

XamlReaderクラスとXamlWriterクラスを使うことで、簡単にXAMLの読み書きができます。 ということで、さっそく使い方。

アプリの多重起動を防止する

アプリの多重起動防止をしてみました。 ↓のサイトを参考にしてます。 http://nine-works.blog.ocn.ne.jp/blog/2011/01/wpf_06c9.html開始時にMutexを使って多重起動のチェックをして、アプリ終了時にMutexの解放をすればよいらしい。 XAMLにイベントハンドラ…

WPFの各種コントロールのタッチパネルでの動作

WPFで作成するデスクトップアプリは、タッチ操作で使うシチュエーションは少ないかもしれませんが、、、 タブレットでタッチ操作した時、WPFの標準コントロールがどんな風に動くかを試してみました。

WPFでスクリーンショットの取得

デスクトップ画面などのスクリーンショットを取得する機能は、WPFのAPIとしては用意されていません。 で、どうやったらスクリーンショットを取得できるか調べたのですが、Drawingのメソッドを用いることでスッキリと実装できるようです。 参考リンク http://…

NavigationWindowを使った画面遷移

WPFでは、Windowクラスの代わりにNavigationWindowというクラスを使うと、複数ページ間で画面遷移を行うプログラムを簡単に作成できます。 NavigationWindowでは、SourceプロパティでPage要素を持ったXAMLを指定すると、そのページを表示できます。ちょっと…

Win8環境でWPFのToolWindowを最大化した時のバグ?

Windows8で、WPFのToolWindowを表示し、 タイトルバーなどをダブルクリックして最大化すると、 画面下のタスクバーやスナップ表示部分を無視して、ウィンドウが最大化されます。