当前位置:  开发笔记 > 编程语言 > 正文

WPF - 改变代码背后的样式

如何解决《WPF-改变代码背后的样式》经验,为你挑选了1个好方法。

我有一个列表框,显示TFS查询的结果.我想在后面的代码中更改ListBoxItem的样式,以获得查询结果中包含的列.

ListBoxItem的样式在我的Windows.Resoruces部分中定义.我试过这个:

public T GetQueryResultsElement(string name) where T : DependencyObject
{
    ListBoxItem myListBoxItem =
        (ListBoxItem)(lstQueryResults.ItemContainerGenerator.ContainerFromIndex(0));

    // Getting the ContentPresenter of myListBoxItem
    ContentPresenter myContentPresenter =
        myListBoxItem.Template.LoadContent().FindVisualChild();

    // Finding textBlock from the DataTemplate that is set on that ContentPresenter
    DataTemplate myDataTemplate = myContentPresenter.ContentTemplate;  <------+
    T myControl = (T)myDataTemplate.FindName(name, myContentPresenter);       |
                                                                              |    
    return (T)myControl;                                                      |
}                                                                             |
                                                                              |
        ContentTemplate is null ----------------------------------------------+

但ContentTemplate为null.我从这里获得了代码,然后使用LoadContent调用对其进行了修改(原始代码为ContentPresenter提供了null).

无论如何.如果你知道改变代码中现有样式的方法,我很乐意看到它.


如果你需要它们的细节:
我将在我的ListBoxItem样式中使用WrapPanel.这就是我想要添加额外的TextBlock项目.

这是我风格的一部分:



    
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有