首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从外部设置ItemsPanel的样式?

如何从外部设置ItemsPanel的样式?
EN

Stack Overflow用户
提问于 2019-10-15 21:22:18
回答 1查看 129关注 0票数 1

我定义了一个样式,让所有的StackPanel都是绿色的:

代码语言:javascript
复制
<Window.Resources>
    <Style TargetType="StackPanel">
        <Setter Property="Background" Value="Green" />
    </Style>
</Window.Resources>

但是如果我使用StackPanel作为面板模板,那么它就不是绿色的:

代码语言:javascript
复制
<UniformGrid>
    <StackPanel /><!-- this one is green -->
    <ItemsControl>
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel /><!-- this one is not -->
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
</UniformGrid>

为什么?怎样才能让它也变绿呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-15 21:45:58

将隐式Style移动到App.xaml,或将基于隐式Style的资源添加到ItemsPanelTemplate

代码语言:javascript
复制
<ItemsControl>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <ItemsPanelTemplate.Resources>
                <Style TargetType="StackPanel" BasedOn="{StaticResource {x:Type StackPanel}}" />
            </ItemsPanelTemplate.Resources>
            <StackPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

如果您不执行这些操作,不是从Control继承的类型将不会获得隐式样式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58395780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档