如何在代码隐藏中将ItemsPanelTemplate设置为动态创建的网格代码隐藏中动态设置ItemsPanelTemplate(与示例中的XAML不同):我试过类似this.Items.ItemsPanel.Template=newGrid();但惨败。帮助?背景:我只知道运行时网格的列数和行数。您需要创建ItemsPanelTemplate并将其VisualTree设置为FrameworkElementFactory(已弃用)以创建Grid,或者使用XamlReader来解析指定模板的XAML字符串。这个问题包含两种方法的用法示例(尽管针对不同的模板属性)。这个问题概述了一种在运行时操作面板的更简单方法。您可以通过在代码隐藏中创建MannualCode来执行您想要的操作:1.创建一个如下所示的方法,它将返回一个ItemsPanelTemplateprivateItemsPanelTemplateGetItemsPanelTemplate(){stringxaml=@"";返回XamlReader.Parse(xaml)作为ItemsPanelTemplate;现在将此模板添加到列表框ItemsPanel:MyListBox.ItemsPanel=GetItemsPanelTemplate();这对我来说很好。希望这可以帮助。继续编码....?如果您仍然需要处理元素,您应该采用以下(扩展)代码:首先,我们需要一个helper来获取元素://-------------------------------------------------------------------//此函数从oVisual中获取WrapPanel。privateWrapPanelm_FetchWrapPanel(VisualoVisual){//要返回的WrapPanelWrapPaneloWrapPanel=null;//oVisual的孩子数量intiNumberChilds=VisualTreeHelper.GetChildrenCount(oVisual);//遍历子节点inti=0;while((i现在我们创建一个Panel(或者别的东西):以上是C#学习教程:如何在后面的代码中将ItemsPanelTemplate设置为动态创建的Grid的全部内容,如果对大家有用需要了解更多C#学习教程,希望大家多多关注---//------------------------------------------------------------------privatevoidm_SettingTemplate(){//在线文档建议解析模板字符串xaml=@"";//分配模板oMyListView.ItemsPanel=(System.Windows.Markup.XamlReader.Parse(xaml)asItemsPanelTemplate);//获取WrapPanelWrapPaneloWrapPanel=m_WrapPanelAusVisualHolen(oMyListView);Debug.Assert(oWrapPanel!=null);if(oWrapPanel!=null){//将WrapPanel的大小调整为ListViewBindingoBinding=newBinding("ActualWidth");oBinding.Source=oMyListView;oWrapPanel.SetBinding(WrapPanel.MaxWidthProperty,oBinding);};}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
