gpt4 book ai didi

wpf - Panel.IsItemsHost 到底做了什么?

转载 作者:行者123 更新时间:2023-12-02 07:51:01 26 4
gpt4 key购买 nike

Panel.IstItemsHost 附加属性的用途是什么?

我看到很多人在 ItemsControlItemsContainer 模板上设置它的例子,但 MSDN 上的非文档并没有解释设置的原因或优势属性(property)授予。

最佳答案

假设我有一个 ItemsControl。我想使用一个自定义面板,当您滚动时,该面板可以将项目快速进出;它称为 SwoopPanel。现在,我如何告诉 ItemsControl 使用我的 SwoopPanel 来包含它创建的模板?

快速的方法是在 ItemsControl 上设置 ItemsPanel:

<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<lol:SwoopPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>

但是,有时这对您不起作用。也许您希望自定义 SwoopPanel 在 UI 中的呈现方式,而解决此问题的唯一方法是更改​​ ItemsControl 的控件模板。现在,您可以将 SwoopPanel 直接添加到控件模板中,并使用该属性将其标记为 ItemsHost,ItemsControl 将放置它创建的所有模板化项目。

<Style TargetType="ItemsControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ItemsControl">
<Border CornerRadius="5">
<ScrollViewer VerticalScrollBarVisibility="Hidden">
<lol:SwoopPanel IsItemsHost="True"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

你必须采用一种方式还是另一种方式?不是,其中一个比另一个更有优势吗?好吧,第二种方式可以让你更好地控制 UI,第一种方式更容易。真的,你自己选择吧。我个人从未用过第二种方法,但我认为它可能在一些地方有用。

关于wpf - Panel.IsItemsHost 到底做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2859656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com