gpt4 book ai didi

Silverlight:禁用 UI 虚拟化?

转载 作者:行者123 更新时间:2023-12-02 21:50:17 28 4
gpt4 key购买 nike

是否有一种简单的方法可以禁用 ListBox 控件上的 UI 虚拟化?我尝试使用“FindName()”方法在 ListBox 控件中查找控件,但如果该控件明显位于 Web 浏览器窗口之外,则无法找到该控件。我几乎可以肯定罪魁祸首是 UI 虚拟化。当控件滚动离开页面时,它不再通过“FindName()”成功检索。

当我将其滚动回屏幕上时,它成功返回控制。

这是这个问题的延伸:

Silverlight: FrameworkElement.FindName() not finding the control when it's not "visible" in the browser window

更新编码示例

这是我尝试检索控件的背后代码。“DynamicTagFormFields”是ListBox 控件。

textField tf = DynamicTagFormFields.FindName(s.KeyValue) as textField;

如果最终用户可以在屏幕上查看我尝试检索的实际 textField 控件,则这将返回有效的“textField”对象。但是,如果我使用 ListBox 的垂直滚动条将 textField 控件滚动到 View 之外,然后再次强制该过程,则上述代码将返回 null。

这是列表框的 XAML:

 <ListBox x:Name="DynamicTagFormFields" Margin="0" Style="{StaticResource ListBoxStyle1}" ItemContainerStyle="{StaticResource ListBoxItemStyle4}" d:LayoutOverrides="Height" Grid.Row="2" IsTabStop="False" TabNavigation="Local" ScrollViewer.HorizontalScrollBarVisibility="Disabled"/>

使用以下代码以编程方式将 textField 对象动态添加到 ListBox:

DynamicTagFormFields.Items.Add(textFieldControl);

最佳答案

你试过这个吗:-

<ListBox x:Name="DynamicTagFormFields" Margin="0" Style="{StaticResource ListBoxStyle1}"
ItemContainerStyle="{StaticResource ListBoxItemStyle4}" d:LayoutOverrides="Height"
Grid.Row="2" IsTabStop="False" TabNavigation="Local"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>

默认面板是VirtualisingStackPanel,这可能是导致您出现问题的原因。

关于Silverlight:禁用 UI 虚拟化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7680459/

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