【问题标题】:Changing Height of ScrollViewer Content dynamically through code通过代码动态更改 ScrollViewer 内容的高度
【发布时间】:2017-07-10 17:51:10
【问题描述】:

我不得不改变滚动查看器内容的高度,而不管它里面的内容需要多大。

原因是我会有一个很长的图像,并且我不想在滚动时减慢我的 GUI。因此,我剪切了长图像并根据当前滚动查看器的垂直偏移量渲染它的拼接图像。

我试图通过放置一个隐藏的长图像来实现它,这样它就不会在滚动时呈现并且不会有任何延迟。但我对此感觉不太好。

有人可以帮我动态增加 ScrollViewer 内容的高度吗?

代码在这里:

     <Grid Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="9" Grid.RowSpan="12" Margin="10,60,10,0" >
    <Image x:Name="StitchedImage" SnapsToDevicePixels="True" HorizontalAlignment="Stretch" Stretch="Fill"/>
    <ScrollViewer x:Name="ImageScrollViewer" Background="Transparent" ScrollChanged="ImageScrollViewer_ScrollChanged" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled">
      <Grid VerticalAlignment="Top" HorizontalAlignment="Left" >
        <Image x:Name="longImageHidden" SnapsToDevicePixels="True" Visibility="Hidden"/>
        </Grid>
    </ScrollViewer>
  </Grid >

【问题讨论】:

  • 给滚动查看器中的网格命名,然后在代码隐藏中手动设置它的高度?
  • 那么,当图像高度设置为相同值时,渲染高度将不等于渲染高度。
  • 我认为如果我可以在没有任何来源的情况下给出一个仅指定高度和宽度的空白图像,那将是非常酷的。这甚至可能吗?

标签: wpf xaml


【解决方案1】:

我认为如果我可以只给出一个空白图像,只指定高度和宽度而没有任何来源,那将是非常酷的。这可能吗?

是的,它是:

<Image Height="1000" />

您还可以设置ScrollViewerHeight 和任何其他FrameworkElement 派生类型。

【讨论】:

  • 不是图像的高度属性,而是空白图像的实际像素高度。
  • 这只是将 Stretch 属性设置为 None 的问题,不是吗?
  • 我必须检查一下。但我需要图像水平拉伸并填充空间。当我说 Horizo​​ntalAlignment=stretch 和 stretch=None 时,这会奏效吗?
  • 你为什么不试试呢?
  • 我删除了隐藏的图像并将高度设置为网格。谢谢你。这不是解决方案,但我不得不调整它。
猜你喜欢
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
  • 2016-06-17
相关资源
最近更新 更多