問題タブ [templatebinding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
silverlight - ControlTemplateの変換へのバインド
ControlTemplate内の要素を動的にスケーリングするカスタムコントロールをSilverlightで作成しようとしています。ControlTemplateの最初の試行は、次のようになります。
ただし、このフォーラムスレッドでは、TemplateBindingはFrameworkElementsの派生物でのみ機能すると述べています。ScaleTransformはFrameworkElementではありません。これに対する回避策はありますか?この種の状況に対するベストプラクティスはありますか?
wpf - WPF-見た目のないコントロールのスタイリング:ControlTemplatesの第2レベルからコントロールの依存プロパティにアクセスする方法は?
いくつかの依存プロパティを追加したいので、 ItemsControl
( )を拡張しています-コレクションにアイテムがない場合に表示されるようなものです(検索結果のitemscontrolで「検索語を入力して検索」ラベルを押すと考えてください) )。class EnhancedItemsControl : ItemsControl
AlternativeContent
サブクラス化してdepItemsControl
を追加しました。AlternativeContent
それへのタイプのプロパティFrameworkElement
。ここで、Themes / Generic.xamlでデフォルトのスタイルを提供したいと思います(AsseblyInfoに追加し、この優れたチュートリアルThemeInfoAttribute
で述べたように、静的costructorでメタデータを提供しました)。
スタイルには、が含まれており、 ItemsControlテンプレート内のControlTemplate
2番目を使用する必要があります。ここに、を表示する必要があるを追加します。ControlTemplate
ContentPresenter
AlternativeContent
さて、私の問題はContentPresenter
、トップレベルからコンテンツを取得する必要があることをどのように伝えるEnhancedItemsControl
かです。私がスタイルの中にいた場合ControlTemplate
、私は使用します:
しかし、私はスタイルの内側ItemsControl
にいるので、これは明らかに機能しません。親テンプレートではなく、祖父母テンプレートを参照する必要がありますが、パラメーターがありません。ControlTemplate
ControlTemplate
TemplateBinding
AncestorLevel
私も試しました:
しかし、その結果も空ContentPresenter
になります。TemplatedParent
(の外にあるため)名前を付けることがControlTemplate
できないため、名前で参照することはできません。を使用することはできませんTemplatedParent
RelativeBinding
。これは、2つのレベルのコントロールテンプレートに到達しないためです。そしてRelativeSource
FindAncestor
奇妙なことに動作しません。
これを解決する方法はありますか?ありがとうございました!
Generic.xaml(抜粋):
制御コード:
使用法(aList<string>
はとして提供されますDataContext
):
silverlight - ControlTemplate で {TemplateBinding Content} withTextBlock を使用する
基本的に、コントロール テンプレートを作成したボタンがあります。現在動作していますが、VS 2010 は、コントロール テンプレートの次のコード行について不平を言っています
コントロール テンプレートはボタン用で、この TextBlock を対象とするさまざまな VisualStates があります。
VS2010 が不平を言う理由がわかります...コンテンツが実際にテキストでない場合はどうなりますか? これは問題を引き起こします。私にとって重要なのは、視覚状態の変化に応じてテキストの前景を設定したいということです。
これをどのように達成できるかについてのアイデアはありますか? (試してみてください、うまくいきます...しかし、vs2010デザイナーはそれを窒息させます)
以下はスタイル全体です。
次のように使用されます。
wpf - WPF ControlTemplate:TemplateBindingのデフォルト値を提供する方法は?
Buttonをサブクラス化するWPFコントロールを作成しています。次に、Themes \ generic.xamlで、次のようなデフォルトのスタイルを提供します(簡略化)。
ユーザーにコントロールの背景を変更する機会を与えてほしいのですが、変更しない場合はデフォルト値を提供したいと思います。どうすればいいのですか?
投稿されたコードのように行うと、ユーザーが明示的に指定しない限り、BackgroundとBorderBrushはnull(=存在しない)になります(これにより、ユーザーは常に何らかの値を提供するようになります)が、標準のウィンドウコントロール(Buttonなど)はデフォルトの外観を提供します、それでもユーザーがカスタマイズできます。私のコントロールでこれを行う方法は?
ありがとうございました!
マイケル・モートンによる解決策:
デフォルトをセッターとしてスタイルで提供できます。
使用法:
.net - WPF: Shape の StrokeThickness への TemplateBinding が機能しませんか?
次の ControlTemplate の Ellipse は BorderThickness を取得していないように見えますが、なぜですか?
TemplateBindingForeground
は正常に機能します。楕円は緑色です。しかし、StrokeThickness
うまくいかないようです、なぜですか?
c# - テンプレート バインドを使用した CodeBehind の CollectionViewSource
Selector
という名前の依存関係プロパティを使用して、WPF に基づいてルックレス コントロールを作成していListItems
ます。SelectedItems
が変更されたとき、私は次のことを行います。
そして、私ControlTemplate
はそれを次のようにバインドしListBox
ます:
しかし、アイテムは私の中に現れませんListBox
。
私も試しました:
ここで何が欠けていますか?
wpf - WPFカスタムコントロール:画像へのTemplateBinding
とを使用して、WPFカスタムコントロールを作成してButton
いImage
ますText
。ImagePath
コントロールに2つの依存関係プロパティを追加しましText
た。コントロールテンプレート(Themes \ Generic.xaml内)は、画像とテキストを水平方向に配置する単純なスタックパネルです。
Text
プロパティは正常に動作します。しかし、何らかの理由で、依存関係プロパティを使用TemplateBinding
してパスを取得すると、テストプロジェクトのサンプル画像が表示されません。カスタムコントロールのを一時的に画像へのパスにImagePath
置き換えて画像をテストしました。その場合、画像が表示されます。TemplateBinding
この分野の経験が豊富な人が、コントロールが期待どおりに機能しない理由を調べて教えてくれることを願っています。ご協力いただきありがとうございます。
私のVS2008ソリューションには、CustomControlDemoという1つのプロジェクトが含まれています。プロジェクトには、カスタムコントロールTaskButton.csと、コントロールのテストに使用するメインウィンドウWindow1.xamlが含まれています。私のテスト画像calendar.pngは、プロジェクトのルートレベルのResourcesフォルダーにあり、Generic.xamlは、同じくプロジェクトのルートレベルのThemesフォルダーにあります。
これが私のカスタムコントロールのコードです(TaskButton.csから):
そして、これが(Generic.xamlからの)コントロールテンプレートです:
最後に、コントロールのテストに使用しているWindow1マークアップを次に示します。
画像パスが機能しない理由はありますか?再度、感謝します。
wpf - Converter を使用した TemplateBinding - 何が問題なのですか?
ゲームデスクを作っています。フィールド サイズ (1 つのフィールドは正方形) を添付プロパティとして指定し、ViewPort のこのデータ セット値を使用して、2x2 マトリックスを描画します (タイル モードはゲーム デスクの残りの部分を実行します)。
バインディングが機能しないため、何が問題なのかまったくわかりません。
私がしたい動作についてXAMLのテスト行:
ゲーム デスクは次の DrawingPaint のサンプルに基づいています: http://msdn.microsoft.com/en-us/library/aa970904.aspx (画像はこちら)
XAML:
コンバーターとプロパティの定義:
wpf - 属性 '[attr]' の値をタイプ 'System.Windows.TemplateBindingExtension' のオブジェクトに変換できません
クラス階層外のクラスで添付された依存関係プロパティを定義し、所有者を共通の親クラスに設定すると、このエラーが発生します。
WindowBase クラスに添付された依存関係プロパティ (クラス階層外 => エラーが発生):
失敗する TemplateBinding
代わりに、クラス階層内のクラスで添付の依存関係プロパティを定義し、所有者をこのクラスに設定すると、エラーが発生しません。なぜですか?
WindowBase に添付された依存関係プロパティ (クラス階層内 => エラーなし):
よろしく、ジェスパー
wpf - TemplateBinding でソースを更新する
このスタイルをすべてのラベルに使用しています
と私のサンプルラベル
しかし、TemplateBiding はプロパティの更新をサポートしていないように感じます。この問題を解決するにはどうすればよいですか