WPF

TemplateBindingとTemplateParentの違い

WPF

"{TemplateBinding Property=Background}"と"{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}"はよく似ているが厳密には機能が違う。詳しくは下に説明がある。MSDNの解説では駄目だな。WPF TemplateBinding vs RelativeSource …

ListBoxの選択状態の変更

WPF

以前からの疑問が解消したのでメモ。 背景知識の説明 まずWPFでのListBox(というか親クラスのItemsControl)とリスト(IListとか)の関係を整理する。ListBox.ItemsSourceにリストをぶち込むとListBoxにリスト項目の一覧が表示される。単純明快。ただし、舞台裏…

背景が透けているウィンドウを作る

WPF

今回はウィンドウの背景色を透明にして、デスクトップが透ける効果のあるウィンドウデザインを紹介します。タイトルバーを消すと(というか消さざるを得ないのですが)ガジェットのような雰囲気が出ます。 Windowコントロールの設定 ウィンドウ背景の透過効果…

リサイズハンドルをAdornerで実装する

WPF

今回はパワーポイントのようなオブジェクトのサイズ変更可能なリサイズハンドルを作ってみます。 Adonerの利用方法と実装のサンプル まず、サイズ変更対象のオブジェクトの四隅にドラッグ可能なコントロール(リサイズ・ハンドル)を作ります。WPFではこのよう…

iPhone風のボタン付きリストボックスを作る

WPF

前回にListBoxのリストアイテムを枠いっぱいに引き伸ばす方法を紹介しました。今回はこれを使ってiPhone風の右端にボタンがあるリストボックス(下図)を作ってみます。 リストアイテムをリストボックス幅にフィットさせる 前回紹介したようにListBox.Horizont…

WPFのレイアウトのTips

WPF

WPFではパネルによって柔軟なレイアウトが可能ですが、時々意図通りにいかずイライラすることもあります。今回はちょっとヒントになるところをいくつか紹介します。 パネルとレイアウトのサンプル http://archive.msdn.microsoft.com/Project/Download/FileD…

デザイン用のViewModelを使ってViewをデザインする

WPF

唐突ですが前回のサンプルをViewModel化してみます。 ViewModel化する まずViewModelです。 namespace Wpf110330Listbox { class ViewModel { public double X { get; set; } public double Y { get; set; } public string Text { get; set; } public ViewMo…

ドラッグ移動可能なオブジェクトをたくさん並べる

WPF

今回は前回作ったドラッグ移動可能なオブジェクトをCanvas上にたくさん並べる方法を考えてみます。方法としては前回のThumbのXAMLをコピペ増殖する方法、あるいはThumbをカスタムコントロール化してコードビハインドで動的に追加する方法も考えられますが、…

ドラッグで移動する:Thumbコントロールを使う方法

WPF

先日のエントリーでは紹介したドラッグで移動可能なオブジェクトをThumbコントロールで作る方法のサンプルコードを紹介したい。まずはXAMLはこんな感じ。 <Canvas> <Thumb DragDelta="Thumb_DragDelta" Canvas.Left="0" Canvas.Top="0"> <Thumb.Template> <ControlTemplate> <Grid Width="100" Height="30"> <Ellipse Fill="LightBlue" Stroke="Blue" /> </ellipse></grid></controltemplate></thumb.template></thumb></canvas>

WPFでドラッグ対応のアプリを作る

WPF

WPFでドラッグしてボタンやオブジェクトを移動させて配置を操作するアプリを作りたい場面は多々あると思いますが、Visual Studioの標準機能では簡単に実現できる手段は用意されていません。いくつか自力で実現する方法はあるのですが、WPFの開発を始めたとき…