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

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

但我不明白为什么:
<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>这里的定义是
<ToggleButton
x:Name="DFilter"
Click="Filtering_Click"
Content=""
ContentTemplate="{StaticResource IconFilterButton}"
Tag="1d"
/>
<ToggleButton
x:Name="WFilter"
Click="Filtering_Click"
Content=""
ContentTemplate="{StaticResource IconFilterButton}"
Tag="1w"
/>即使是最糟糕的情况,如果我点击按钮,一旦他们出来:

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

发布于 2020-06-09 08:31:27
WPF ToolBar控件对overflow Popup使用自定义面板。在许多样式中,ToolBarOverFlowPanel都有一个属性WrapWidth设置为像200这样的静态值。这决定了在它在弹出窗口中换行到另一行之前可以显示多少项。
我已经为这个控件创建了自定义样式,并且发现内部使用的ToolBarOverFlowPanel有错误。这可能就是你问题的根源。
您可以重新模版ToolBar并为WrapWidth连接一个不同的值来尝试解决这个问题,但我猜您仍然会遇到布局问题。
否则,您可以考虑创建自己的替换控件。
https://stackoverflow.com/questions/62270907
复制相似问题