首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果在工具栏弹出按钮中,DataTemplate of ToggleButton中的WPF TextBox不显示文本

问如果在工具栏弹出按钮中,DataTemplate of ToggleButton中的WPF TextBox不显示文本
EN

Stack Overflow用户
提问于 2020-06-09 04:46:39
回答 1查看 88关注 0票数 0

如果我将工具栏所在的列放得非常大(800),那么所有文本都是可见的:

​

​

但是如果我放一个更小的列,就会发生这种情况:

​

​

但我不明白为什么:

代码语言:javascript
复制
    <DataTemplate x:Key="IconFilterButton">
        <StackPanel Orientation="Horizontal">
            <TextBlock
                VerticalAlignment="Center"
                Style="{StaticResource LargeIconStyle}"
                Text="{Binding}" />
            <TextBlock
                Margin="6,0,0,0"
                VerticalAlignment="Center"
                DataContext="{Binding}"
                Style="{StaticResource BodyTextStyle}"
                Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ToggleButton}, Path=Tag}" />
        </StackPanel>
    </DataTemplate>

这里的定义是

代码语言:javascript
复制
            <ToggleButton
                x:Name="DFilter"
                Click="Filtering_Click"
                Content="&#xE161;"
                ContentTemplate="{StaticResource IconFilterButton}"
                Tag="1d" 
                />
            <ToggleButton
                x:Name="WFilter"
                Click="Filtering_Click"
                Content="&#xE8C0;"
                ContentTemplate="{StaticResource IconFilterButton}"
                Tag="1w" 
                />

即使是最糟糕的情况,如果我点击按钮,一旦他们出来:

​

​

然后,文本是可见的,但由于对象大小中没有考虑TextBlock,因此文本是错误的:

​

​

EN

回答 1

Stack Overflow用户

发布于 2020-06-09 08:31:27

WPF ToolBar控件对overflow Popup使用自定义面板。在许多样式中,ToolBarOverFlowPanel都有一个属性WrapWidth设置为像200这样的静态值。这决定了在它在弹出窗口中换行到另一行之前可以显示多少项。

我已经为这个控件创建了自定义样式,并且发现内部使用的ToolBarOverFlowPanel有错误。这可能就是你问题的根源。

您可以重新模版ToolBar并为WrapWidth连接一个不同的值来尝试解决这个问题,但我猜您仍然会遇到布局问题。

否则,您可以考虑创建自己的替换控件。

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

https://stackoverflow.com/questions/62270907

复制
相关文章

相似问题

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