【问题标题】:It's not scrollable vertically in case of LiveCharts in WrapPanel of WPF, [duplicate]如果 WPF 的 WrapPanel 中的 LiveCharts 不能垂直滚动,[重复]
【发布时间】:2019-05-16 10:08:34
【问题描述】:

我通过 ListBox 中的LiveChart 实现了几个图表的呈现。 它运作良好。它通过在页面空间上自动包装图表来显示。但是,它不能垂直滚动。

当我将 ScrollViewer.HorizontalScrollBarVisibility 设置为 Enabled 为 1 行并带有水平滚动条时,它可以水平滚动。

但是,使用wrapPanel 并不是我想要的结果。

你有这样的经历吗?请帮帮我。

<StackPanel Orientation="Vertical">
<ListBox ItemSource="{Binding info}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
  <ListBox.ItemsPanel>
    <ItemsPanelTemplate>
      <WrapPanel/>
    </ItemsPanelTemplate>
  </ListBox.ItemsPanel>

  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel Width="350" Height="250">
        <lvc:CartesianChart>
          <lvc:LineSeries Values="{Binding data}"/>
        </lvc:CartesianChart>
      </StackPanel>
     </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>
</StackPanel>

【问题讨论】:

  • 确保ListBox的视觉祖先中没有StackPanel
  • @mm8 很抱歉,当我在垂直方向尝试StackPanel 时它还不起作用。
  • 评论的意思是说不应该有一个 StackPanel。既不是 ListBox 的直接父级,也不是可视化树中更高的位置。请改用 Grid 或 DockPanel。
  • 是的。这有点复杂。现在,它是当前层次结构:&lt;Window&gt;&lt;Grid&gt;&lt;Grid&gt;&lt;Frame&gt;&lt;Page&gt;&lt;StackPanel&gt;&lt;ListBox&gt;&lt;StackPanel&gt;&lt;CartesianChart&gt;.
  • @yahocho:所以从Page 中删除StackPanel

标签: wpf livecharts


【解决方案1】:

没有垂直滚动条的原因是您将ListBox 放在StackPanel 中。如果Orientation 属性设置为Vertical,则StackPanel 测量其具有无限垂直空间的子级:

It's not scrollable vertically in case of LiveCharts in WrapPanel of WPF,

【讨论】:

  • 太棒了。非常感谢。这就是我做stackoverflow的原因。
猜你喜欢
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
相关资源
最近更新 更多