WPF

IntelliSense For Expression Blend

08/08/21 一部追記 IntelliSense for Expression Blend Visual StudioのWPF、Silverlightデザイナ”Cider”では、XAMLを記述する際にIntelliSense機能を利用できます。 ところが、Expression Blend(以下Blend)の場合、直接XAMLを記述することを推奨していな…

WPFにあってSilverlight 2 Beta 2にないシリーズ「UIElement.AddHandlerメソッド」

XAML「 Window1.xaml 」( WPF ) <Button Click="Button_Click"/> Visual Basic「 Window1.g.vb 」( WPF ) AddHandler CType(target,System.Windows.Controls.Button).Click, New System.Windows.RoutedEventHandler(AddressOf Me.Button_Click) WPFでも、イベントはAddHandlerステート</button>…

WPFにあってSilverlight 2 Beta 2にないシリーズ「DataContextプロパティのコレクションサポート」

下記のようなコードでコレクションオブジェクトを作成し、 DataList.vb(Visual Basic) Imports System.Collections.ObjectModel Public Class DataList Inherits ObservableCollection(Of Data) Sub New() For i As Integer = 1 To 10 Me.Add(New Data("テ…

WPF 3.5 SP1の新機能 - AlternationCount

WPF

WPF 3.5 SP1 Feature: Alternating Rows – Vincent Sibal's Blog WPF 3.5 SP1 BetaのItemsControlには、AlternationCountプロパティとAlternationIndexプロパティが追加されています。この2つのプロパティを利用することで、一行おきに色を変更するといった…

WPFとSilverlight 2 Beta 2の互換性 - ToolTip

WPFではToolTipを表示する方法が大きく分けて2種類ありました。 XAML( WPF ) <Window x:Class="Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="320" FontSize="20"> <StackPanel> <Button Content="(ア)ButtonのToolTip">…</button></stackpanel></window>

VSUG Day 2008 Summer セッションフォローアップ

VSUG Day 2008 Summer 6月7日(土)に行われたイベント「VSUG Day 2008 Summer」にて、 「コントロール - WPF vs Silverlight」というセッションを担当させていただきました。ご参加いただいた皆様、イベントに携われた皆様、ありがとうございました。 イ…

Silverlight 2 Beta 1から Beta 2への変更点 - コントロールのメンバの移動

以前の投稿で、WPFとコントロールのメンバが異なる違いの例としてFont関係のプロパティを紹介しましたが、少なくともFont関係のプロパティについてはBeta 2でWPFと同じControlクラスに移動されました。 WPF Silverlight 2 Beta 1 Silverlight 2 Beta 2 この…

値を継承するカスタムの依存関係プロパティを作る方法

WPF

前回の投稿で「WPFと異なり値を継承する独自のカスタムプロパティを作ることは〜」と書きましたが、これまでWPFで値を継承する独自のカスタムプロパティを作る方法を紹介していませんでしたので、それを書きたいと思います。 MyStackPanel.vb Public Class M…

WPF 3.5 SP1の新機能 - IsDeferredScrollingEnabled

WPF

WPF 3.5 SP1 Feature: Non-live Scrolling – Vincent Sibal's Blog WPF 3.5 SP1 BetaのScrollViewerには、IsDeferredScrollingEnabledプロパティが追加されています。このプロパティをTrueに設定することで、いわゆる遅延スクロールができるようになりました…

WPF 3.5 SP1の新機能 - StringFormat

WPF

Lester's WPF blog : WPF 3.5 SP1 feature: StringFormat これまでWPFではバインディングした値に対して書式を設定するという機能は用意されていませんでした。そのため、たとえば100という値を100円と表示したいといった場合には、そのためだけにConverter…

Visual Studio 2008 Service Pack 1 Beta - WPFデザイナ新機能

Microsoft ダウンロード センター: Windows、Office、Xbox、その他 少し前になりますが、Visual Studio 2008と.NET Framework 3.5のSP1 Betaがリリースされました。SP1ですが、内容はサービスパックレベルではなくたくさんの新機能が含まれています。今回は…

Blendでデザイン時の幅と高さを指定する機能

http://designerslove.net/?p=172 Expression Blend 1.0(以下、Blend)とExpression Blend 2(以下、Blend 2)では、WPFのコントロールライブラリ(ユーザーコントロール)のプロジェクトを新規作成したときの「UserControl1.xaml」の内容が、下記のように…

WPFにあってSilverlight 2 Betaにないシリーズ「Binding.ElementNameプロパティ」

Binding.ElementName プロパティ (System.Windows.Data) このプロパティは、アプリケーション内の別の要素のプロパティにバインドするときに役立ちます。たとえば、Sliderを使用してアプリケーション内の別のコントロールの高さを制御する場合や、コントロー…

WPFとSilverlight 2 Betaで異なるコントロールの階層構造

基本的にはWPFのサブセットとなっているSilverlightのコントロールですが、その階層構造は微妙に異なっています。 WPF Silverlight 2 Beta たとえば、WPFの場合UserControlはContentControlの派生クラスですが、Silverlight 2 BetaではControlの派生クラスと…

WPFにあってSilverlight 2 Betaにないシリーズ「プロパティ値の継承」

WPFでは特定のプロパティにおいて、親要素が持つ同名のプロパティ値を継承するようになっています。 プロパティ値の継承 - Yuya Yamaki’s blog プロパティ値の継承 - MSDNライブラリ まずはXAMLとその実行結果から見ていただきたいと思います。 XAML(WPF)

WPFにあってSilverlight 2 Betaにないシリーズ「スタイルの継承」と「型指定によるスタイルの適用」

いまさらながらに気がついたのですが、このシリーズは結局WPFの機能を説明することになってしまい全然Silverlightを紹介することができませんね。ただ、Silverlightにはこれとこれとこれがありませんという風に書いてもあまりおもしろくありませんので、今ま…

WPFにあってSilverlight 2 Betaにないシリーズ「DynamicResource」

このシリーズが続くのかどうかも定かではありませんが、WPFにはあるけれどもSilverlight 2 Betaにはないという部分を紹介していこうと思います。 まずは簡単なところからということで、DynamicResourceです。ご存知の方も多いかと思いますが、WPFにあるStati…

Silverlight 2 Betaのコントロールテンプレートモデルに関する是非

Silverlight 2 Betaのコントロールテンプレートモデルに関する以下の投稿が非常に興味深いと思いました。 I Like the Silverlight 2.0 Control Templating Model (better than WPF’s) 関連リンク:スタイルの設定が可能なコントロールを設計するためのガイド…

Buttonコントロールに見るWPF 3.5とSilverlight 2 Betaの違い

Silverlight 2 Betaがリリースされ、WPFベースのUI Frameworkが実装されたことでようやくSilverlightはWPFのサブセットであると言えるようになってきたように思います。SilverlightアプリケーションのXAMLファイルなどをコピーして少し修正することで、WPFア…

アプリケーションのアイコンとウィンドウのアイコン

WPF

ExpressionBlendで新規に作成したWPFアプリケーションのEXEファイルは、デフォルトの状態では下記のように表示されます。 これは、アプリケーションのアイコンにあらかじめ「Application.ico」が設定されているためです。アプリケーションのアイコンは、Visu…

デザイン時におけるサンプルデータの表示 その2

その2は、GetIsInDesignModeメソッドを使ってデザイン時なのかどうかを判断し、デザイン時にはサンプルデータを生成するという方法です。 DesignerProperties.GetIsInDesignMode メソッド (System.ComponentModel) この方法の場合、Expression Blend(以下B…

デザイン時におけるサンプルデータの表示 その1

下記のコードのように、XmlDataProviderを使ってXMLファイルからデータを取得、表示しているような場合には、デザイン時にデータの表示を含めたかたちで確認することができます。 XAML

LINQ to SQLクラスの作成とWPFでの表示

前回の投稿のWPF編です。4番までWindowsフォーム編のときと手順が同じになるので、今回は5番から始めます。 5.Expression Blend(SP1の適用が必要)で、作成したプロジェクトを開き、[プロジェクト]パネルの下部にあるデータソースの一覧から[+CLRオ…

XAMLとXMLリテラルとLINQ

下記のblogにVisual Basic 9.0のXMLリテラルを使ったおもしろいコードが紹介されていましたので、それを紹介したいと思います。 simplegeek Visual Basic 9.0では、下記のようにコード内に直接XMLを記述することができ、代入された変数は型推論によりXElemen…

Expression Blendでobjファイルをインポートする

Expression Blend(以下Blend)では、3Dモデルのファイル形式の1つであるobjファイルを取り込むことができます。この機能は、Blend 2ではなく1から既に存在している機能ですが、どうもあまり知られていないようですのでここでご紹介しておこうと思います。 o…

ItemsControlのItemsプロパティには直接Stringを設定すべきではない

WPF

ListBoxのItems.Addで文字を直接入力した時のセレクトがおかしくなる - MSDN フォーラム 上記のMSDNフォーラムの内容を試してみたところ、ItemsControlのItemsプロパティには直接Stringを設定すべきではないということが分かりましたので、その内容について…

実行時に各エレメントが生成される仕組みとその順番

WPF

The Danger of Assigning Event Handlers in XAML 上記のblogの内容は、知らないと「なぜ?」と止まってしまうような現象だと思います。ということで、ここではその内容をコードをVisual Basicにして日本語で紹介します。 まず、下記のコードをWindow1.xaml…

WPFアプリケーションにおけるフォントのパッケージング

WPF

WPFでは、アプリケーションで利用するフォントをどの環境でも利用できるようにパッケージ化することができます。アセンブリとは別にコンテンツとしてフォントをパッケージ化する方法と、アセンブリにリソースとしてフォントを埋め込む方法の2種類が存在しま…

ListBoxをカスタマイズして都道府県の地図を選択するUIを作成する

WPF

以前のこちらの投稿で、ListBoxのControlTemplateを変更して各リストアイテムを楕円形にするようなものを紹介しましたが、今回はこれを応用して都道府県の地図を選択するようなUIを作成していこうと思います。 完成後のスクリーンショットは下記のようなもの…

ListBoxItemのTemplateを変更して選択できる領域を限定する

WPF

以前の投稿「ListBoxItemをクリッピングして選択できる領域を限定する」でコメントをいただき、ListBoxItemのTemplateを変更する方法でも実現可能であると教えていただきました。こちらの方法のほうがスマートなやり方だと思いますので、あらためてご紹介し…