問題タブ [itemspanel]
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.
wpf - WPF-ItemTemplateが期待どおりに機能しない
UserControl
のリストを表示するために使用しているを持っていUIElement
ます。コントロールは、水平方向に切り替えられたシングルItemsControl
で構成され、によって公開されたものにバインドされ、のセットになります。 ItemPanelTemplate
StackPanel
ItemsSource
DependencyProperty
UserControl
ItemTemplate
UserControl.Resources
決して適用されないことを除いて、すべてが正常に機能し、ItemTemplate
理由がわかりません。完全なソースは以下のとおりです。
UserControl.xaml-
UserControl.xaml.cs-
}
私はこのようにメインウィンドウのコントロールを消費します-
ボタンは正常に表示されますが、200ピクセルの正方形の境界線の内側には表示されません。
どんな助けでも大いに活用されるでしょう。ありがとう。
wpf - WPF ItemsPanelTemplate が機能しない
私は のためにItemsPanelTemplate
働くことを試みていListBox
ます。はListBox
で使用されDataTemplate
、暗黙的ListBox
なスタイルはデフォルトのビジュアル スタイルをオーバーライドしません。何らかの理由でItemsPanelTemplate
、コントロール (a ) に指定している I'm specifiyingWrapPanel
が無視され、StackPanel
代わりに a が使用されます。
これはテンプレート全体です。これを引き起こしている何かが欠けているとしか思えません。
silverlight - 奇妙な ItemsPanelTemplate の問題 (Silverlight のバグの可能性?)
アイテムの垂直方向のスタック パネルを含む水平方向のスタック パネルを作成しようとしています。これが私のコードです。
最初にXAML
今コードビハインド...
3 つの青い正方形の 2 つの列が表示されることを期待していますが、代わりに6 つの正方形の 1 つの列が表示されます
露骨に間違っていると飛び出すコードについては何もわかりません...
何か案は?
ありがとう
wpf - 実行時に ListView で ItemControl を VirtualizingStackPanel に変更する方法
さて、Grouping と ItemsSource をオンザフライで変更する ListView 派生コントロールがあります。スクロールバーが消えるようにグループ化し、ItemsSource を別の ICollectionView に変更すると、スクロールバーが戻りません。
基本的な問題は、グループ化がアクティブ化されると ListView が VirtualizedStackPanel に変更され、グループ化が非アクティブ化されても元に戻らないことです。
グループ化時に仮想化が無効になっていることは気にしません。これは問題ではありません。私が必要としているのは、ItemsSource を変更したときに ListView に ItemPanel を再生成させる方法です。
wpf - コード ビハインドでの WPF の ItemsPanel と ItemTemplate の変更
XAML に次のリストがあります。
ここで、ItemsPanel と ItemTemplate をリストからグリッド バージョンに変更できるようにしたいと考えています。次のコードを使用してこれを試しました。
しかし、実行しても何も起こりません。
何か案は?
ありがとう!
wpf - ツリービュー (WPF) 内でパネルを取得する方法
内で使用されるパネルを取得するにはどうすればよいTreeView
ですか? デフォルトではこれに a をTreeView
使用することを読みましVirtualizingStackPanel
た。テンプレートを見るTreeView
と、<ItemsPresenter /> しか表示されず、使用されているパネルの詳細が隠されているように見えます。
可能な解決策:
1) ツリービュー インスタンス (「tv」) で、コードから、tv.ItemsPanel を実行します。
問題は、これがパネルではなく、ItemsPanelTemplate (「項目のレイアウトを制御するパネルを定義するテンプレートを取得または設定する」) を返すことです。
2) <ItemsPresenter /> を独自の ItemsControl.ItemsPanel に明示的に置き換える TreeView テンプレートを作成します。とにかく特別なテンプレートを提供しているので、これは私のシナリオでは問題ありません。次に、そのテンプレート内に配置するパネルにパーツ名を付けます。コードからそのパーツ (つまり、パネル) を取得できます。これの問題?下記参照。
(以下に示すように、TreeView から派生した VirtualTreeView という名前のコントロールを使用しています):
[見やすくするために、ここでは雑然としたものをすべて取り除きました...]
これに関する問題は次のとおりです。これにより、TreeView レイアウト メカニズムが即座にオーバーライドされます。実際には、TreeViewItems がツリーを埋めている場合でも、空白の画面が表示されます。さて、私がパネルを手に入れたい理由は、MeaureOverride に参加するためですが、そのすべてに立ち入ることなく、ツリービューのレイアウト方法の本を書き直したくはありません。つまり、これをステップ 2 の方法で行うと、最初に TreeView を使用することさえ無効になるようです。
ここに混乱がある場合は申し訳ありませんが、提供できるヘルプに感謝します。
wpf - ItemsControlのItemPanelとしてのWrapPanel
まだWPFをいじくり回して、学習しながら進んでいます。コントロールの動的なグループ化を構築しようとしています(主にボタンですが、チェックボックスなどが含まれる場合があります)。
これを行うための最良の方法がわからなかったので、ItemsControlスタイルを作成してから、WrapPanel内のItemsPresenterにアイテムを追加してみました。すぐに、ItemsHostとして配置しない限り、アイテムがWrapPanel内に効果的に含まれていなかったため、アイテムがラップされないことに気付きました。このような:
これは進行中の作業であり、まだ実装する必要のある多くのスタイリング効果があることに注意してください。ここで私はそれを使用します:
また、UniformGridはここに行く方法ではなく、マージンが苦痛になる可能性があるため(重複するマージンはありますか?)、まだ作業中であることに注意してください。そこで入力していただければ幸いです。
さて、本当の問題に。これは機能しませんエラーが発生します:
「ItemsPresenter」オブジェクトを「WrapPanel」に追加することはできません。ItemsControlのItemsPanelとして使用されるPanelのChildrenコレクションを明示的に変更することはできません。ItemsControlは、Panelの子要素を生成します。オブジェクト'System.Windows.Controls.ItemsPresenter'でエラーが発生しました。
したがって、このようなことを行うための最良の方法は何ですか(ボタンやその他のコントロールをItemControlにスローして、本当に素晴らしいものに並べることができるようにしたいと思います)。コントロールをある種のコレクションに入れて反復する方がよいでしょうか。
それをうまくやりたいのですが、私のWPFスキルはまだ不足しています。基本を超えて教え、プロが実際にそれをどのように行うかを示すWPFの本はありますか?
wpf - WPF: TabPanel でのタブのレイアウトの変更
上部ではなく、左側にタブを配置したくありません。TabPanel が最初の列に表示され、2 番目の列がコンテンツをホストするように、TabControl のテンプレートを変更しました。
問題は、TabPanel のレイアウトをどのように変更して、タブが垂直に積み重なって表示されるのかわかりません。
通常の ItemsControl オブジェクトでは、変更する必要がある ItemsPanel を知っています。これどうやってするの?
silverlight - Silverlight の ItemsControl Canvas.TopProperty および Canvas.LeftProperty は使用されていません
ユーザーが UI 要素 (タスクを表す) をドロップできるキャンバスを作成したいと考えています。それらをドラッグして並べ替えることができます。要素は、DataContext である ObservableCollection に含まれています。
Canvas の Left プロパティと Top プロパティを設定できますが、オブジェクトの位置は影響を受けません。何か案は?
ありがとう、
カレル
更新: ItemsControl の子孫を忘れました (Phil に感謝):
より詳しい情報:
ユーザーコントロールから派生したバインドオブジェクトは例外を引き起こすため、グーグルで調べた後、値コンバーターを作成しました。
これは機能します。しかし、ObservableCollection に含まれる要素の Left プロパティと Top プロパティをバインドすると、それらは使用されません。すべての項目が位置 0,0 に配置されます。
コードビハインドは次のとおりです。
そしてここにxamlがあります: