オブジェクトのCanvas.TopプロパティとPanel.ZIndexプロパティをC#のコードでのみバインドする方法はありますか?私が得たい効果は、キャンバス上でオブジェクトが最も低く(高い頂点値)、Zプロパティが高くなるほど高くなります。私は、WPFに優しい新たなんだので、私はうまく把握することはできませんWPF:プログラムでCanvas.TopとPanel.ZIndexをバインドする
0
A
答えて
0
以下のようにバインディングを作成できます。 sourceプロパティが添付プロパティであるため、Path
文字列の括弧が必要です。
element.SetBinding(Panel.ZIndexProperty,
new Binding
{
RelativeSource = RelativeSource.Self,
Path = new PropertyPath("(Canvas.Top)")
});
また、直接、このようなのPropertyPathコンストラクタにソースのDependencyPropertyを渡すことができます。
element.SetBinding(Panel.ZIndexProperty,
new Binding
{
RelativeSource = RelativeSource.Self,
Path = new PropertyPath(Canvas.TopProperty)
});
double
からint
への変換は、フレームワークによって暗黙的に行われています。ただし、「スケーリング」の要素が必要な場合は、バインディングコンバータも追加する必要があります。
0
を行う方法あなたはこの試みることができる:
<Canvas>
<Border Panel.ZIndex="{Binding Location, Converter={StaticResource DoubleToIntConverter}}" Canvas.Top="{Binding Location}"/>
</Canvas>
DoubleToIntConverterがダブルをとり、intを返しコンバータです。 場所は、ViewModelに格納されているDoubleです。
+0
私は純粋なC#で、xamlではなく:\ – user3489057
関連する問題
- 1. 子要素のWPF Panel.ZIndex
- 2. WPFデータクラスをプログラムでバインドする
- 3. C#WPF AutoCompleteBox:プログラムでテキストをバインドする方法
- 4. WPF DataGridフォアグラウンドで項目のプロパティにバインドするプログラムで
- 5. TabItemをWPFでバインドする
- 6. WPFで動作しないリストボックスのプログラムによるバインド
- 7. DataTemplateSelectorをWPFでプログラムでツリービュー項目を使用してバインドする
- 8. WPFとDatacontextとのバインド
- 9. WPF DataGridをバインドする
- 10. UserControlのCanvas.Topを設定します。
- 11. WPF - カスタムコンボボックスでのバインド
- 12. コードの背後にあるCanvas.LeftまたはCanvas.Top添付プロパティにどのようにバインドするのですか?
- 13. wpfのプロパティでイメージソースをバインドする
- 14. WPFのListBoxでMySQLデータベースをバインドする
- 15. WPFで背景色をバインドする
- 16. WPF:グループでListBoxにコレクションをバインドする
- 17. WPFでコマンドをバインドする方法
- 18. WPF Datagridバインドと列表示
- 19. WPFのListBoxとTabItemのバインド
- 20. MVVMグリッドビューとdatatable WPFのバインド
- 21. WPFデータとUserControlのバインド
- 22. wpfチェックボックスとユーザーコントロールのバインド
- 23. WPFトリガーとバインドの問題
- 24. プログラムでWPFコピーコントロール
- 25. はプログラムでWPF
- 26. gwtpプログラムでバインダープレゼンターとビューをバインド
- 27. プログラムでWPFリボンヘッダーを隠す
- 28. WPFのTextBoxバインド
- 29. WPFバインドCombobox.ItemsSourceは
- 30. WPF mailto MVVMバインド
それは完璧に動作します、ありがとう!私が欠けていたのは、新しいPropertyPath(Canvas.TopProperty) – user3489057