ResourceDictionary を複数ファイルに分割して、片方のリソースから片方のリソースへの参照があると、XamlParseException が発生して起動出来ない。 ----------------- XamlParseException Name/Key XXXXXX を持つ Resource が見つかりません [Line: XX Position: XX] ----------------- Expression Blend Preview For Silverlight 5 だからなのかもしれないが、App.xaml の MergedDictionaries 内で複数のリソースファイルをロードしようとした時に別リソースファイルへの参照があるとダメそう。イメージファイルの定義が1ファイルに纏めたいんだけど。。。 対処としては、App.xaml 内で定義している Resour
WPF の Dispatcher について勉強がてら自分なりに得た理解をまとめてみました。 WPF アプリケーションは、レンダリング(描画)用とユーザーインターフェイス用の2つのスレッドを用いて動作します。 レンダリングスレッドはバックグラウンド動作のため、開発者はアクセスできません。開発者が扱えるのは、ユーザーインターフェイス用スレッド(以下 UIスレッド)のみとなります。そしてこの UI スレッドは、パフォーマンス上の理由により(スレッドセーフにするとオーバーヘッドが発生し、描画遅延等の問題を起こすためか)スレッドセーフに設計されてないのが特徴です。 WPFでは、ほとんどのオブジェクトが UI スレッド上で動作する「シングルスレッドモデル」を採用しているため、UI スレッド外からそのオブジェクトにアクセスすると、例外が発生します。 例えば、以下のように ListBox へのアイテム追加
Contents The Threading Model DispatcherObject Using the Dispatcher BackgroundWorker DispatcherTimer It would be a shame if you put months of your life into creating an intuitive, natural, and even beautiful interface only to have your users tapping their fingers on their collective desks waiting for it to respond. Watching your application screech to a halt because of a long-running process is jus
Button や Label に表示するテキストとか、DataGrid の列ヘッダのタイトルとか、XAML に日本語で直書きしています。日本以外でアプリをリリースすることは多分ないでしょうし。 でも、将来何があるかわからないし、ローカライズすることを考えた方がいいかも。そうなると Properties.Resources に定義した文字列を XAML で使う必要がありますね。 まずプロジェクトのプロパティを開いてリソースタブを選び、右上のアクセス修飾子をpublicにしておきます。 あとは XAML の中で x:Static マークアップ拡張を使って指定するだけ。 <Window x:Class="ResourcesSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xml
注釈 UnsetValue は、WPF プロパティ システムが要求された値を決定できないシナリオで使用される DependencyProperty sentinel 値です。 UnsetValueは ではなく null使用されます。これは、有効なプロパティ値だけでなく、有効な (および頻繁に使用される) DefaultValue可能性があるためnullです。 UnsetValue が から DependencyObject.GetValue返されることはありません。 インスタンスの依存関係プロパティDependencyObjectを呼び出DependencyObject.GetValueすと、次のいずれかが適用されます。 依存関係プロパティには、メタデータで設定された既定値があり、その値が返されます。 この値は から DefaultMetadata取得される場合があります。 プロパティ シ
SilverlightのDataGridは主にItemsSourceにデータをバインドして使うと思うけど 今日はそのデータによって行の背景色を変えてみましょうという記事です。 よくあるケースで考えられるのは 「データが変更されている場合はピンク色で」とか、 「ユーザーが(エラーじゃ無いけど)斜め上な値を入力したら警告の意味を含めて赤色で」 とか。 このやり方、いろいろGoogle先生に聞いてみたんだけど、 DataGrid.LoadingRowイベントのハンドラで e.Row.BackGround = 〜〜 みたいにするのが多いみたい。 でも、これだと行が描画されるときにしか色が変わらない。 そうじゃなくて、「編集された時点でピンクになる」とか、リアルタイムで変わって欲しいときのサンプルが無いようだったので書きます。 「状態によって見た目が変化」なので、VisualStateを使ってみよう
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
■アニメーション WPFのアニメーションは以下のような特徴を持っている。 実時間ベース: フレーム・レート(=1秒間に描画されるコマ数のこと)が変わっても再生速度は変わらない。 マークアップ・ベース: XAMLコード中に記述でき、Expression Blendなどのツールでの読み書きが容易。 ●低レベルなアニメーション制御 WPFでは、後述するストーリーボードという高機能なアニメーション制御機構を利用できるが、一応、低レベルなアニメーション制御の仕方についても補足説明しておこう。 まず、最も原始的なアニメーション制御の仕方として、UI要素の描画タイミングを拾って、すべて自前でアニメーションを管理する方法が考えられる。描画タイミングは、CompositionTargetクラス(System.Windows.Media名前空間)のRendering静的イベントによって拾うことができるので、こ
プログラミング関連Blog 私の興味の端から端までをお届けします! 【免責事項】このサイトの情報は私の個人的な見解で、私以外の意見を代弁するものではありません。 JUGEMテーマ:コンピュータ Source and Project Blend 4 SDKに付属している組み込みビヘイビアに対して条件を設定できるConditionBehaviorを使ってみました。 ConditionBehaviorは 指定されたトリガーが実行されたタイミングで ConditionBehaviorで指定された条件を満たす場合に 指定されたアクションを実行します。 Blend 4のヘルプを読む限りでは「条件付きビヘイビアー」として下記が紹介されています。 条件付きビヘイビアー CallMethodAction ChangePropertyAction ControlStoryboardAction GoToSta
プログラミング関連Blog 私の興味の端から端までをお届けします! 【免責事項】このサイトの情報は私の個人的な見解で、私以外の意見を代弁するものではありません。 JUGEMテーマ:コンピュータ Source and Project Source and Project(2) Blend 4 SDKに付属する組み込みトリガーであるDataTriggerを使ってみました。.NET Frameworkに付属するDataTriggerではないのでお間違えのないようにお願いします。また、Blend 4 SDKのDataTriggerと.Net FrameworkのDataTriggerの違いと利点と欠点は後日(気が向いたら)紹介させていただきます。 DataTriggerは 指定されたターゲットが指定された条件を満たしたタイミングでアクションを呼び出すトリガーとなります。 比較される値はBindin
プログラミング関連Blog 私の興味の端から端までをお届けします! 【免責事項】このサイトの情報は私の個人的な見解で、私以外の意見を代弁するものではありません。 Source and Project Blend 4 SDKに組み込まれているトリガーであるDataStoreChangedTriggerを使ってみました。 DataStoreChangedTriggerは 「データ ストア プロパティにバインドするように設計されたトリガー。プロパティが変更されると起動されます。」 アクションと組み合わせることで、 指定されたプロパティの変更通知を受けたタイミングで アクションが実行されます。 PropertyChangedTriggerを継承しています。機能自体は全く同じ物です。ただし、DataStoreChangedTriggerの方がデータストアを利用していると言うことが明示的に表すことがで
A. いささか凝った方法ですが、MultiDataTrigger と IMultiValueConverter を使って設定します。 発端と問題 WindowsForms の DataGridView の場合、セルからはみ出したデータにマウス持ってくとツールチップが表示されるのですが、残念ながら WPF の標準 DataGrid も XamDataGrid もこの UI はサポートされてません。 当初どうしていいか全く判らず、苦肉の策で <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Value}"/> <Style.Triggers> <DataTrigger Binding="{Binding RelativeSource={x:Static R
プログラミング関連Blog 私の興味の端から端までをお届けします! 【免責事項】このサイトの情報は私の個人的な見解で、私以外の意見を代弁するものではありません。 下記のコードは指定したオブジェクトから親方向へVisualTreeを展開するロジックです。 private static void PrintDebugBubbleVisualTree(DependencyObject bottomTarget) { DependencyObject target = bottomTarget; while (target != null) { Debug.Print(target.DependencyObjectType.Name); target = VisualTreeHelper.GetParent(target); } } このコードは意外に役に立ちます。 特にコードでごりごりとカスタマ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く