我想实现一个容器,其中包含可滚动的列表项目我正在使用图像设置换行面板的背景,但此图像根据换行面板的项目进行拉伸.我想修复背景,以便内容可以滚动,但不会拉伸背景图像.我使用以下代码.
<ScrollViewer x:Name="imageScrollViewer" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
<WrapPanel x:Name="panel" Orientation="Horizontal" >
<WrapPanel.Background>
<VisualBrush>
<VisualBrush.Visual>
<Image Name="pnlBackground">
<Image.OpacityMask>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5" >
<GradientStop Offset="0.0" Color="#00000000" />
<GradientStop Offset="1.0" Color="#FF000000" />
</LinearGradientBrush>
</Image.OpacityMask>
</Image>
</VisualBrush.Visual>
</VisualBrush>
</WrapPanel.Background>
<ListBox
Margin="5"
SelectionMode="Extended"
ItemsSource="{Binding}"
SelectedIndex="0"
d:IsHidden="True">
</ListBox>
</WrapPanel>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
而不是为WrapPanel设置背景,尝试为ScrollViewer设置背景.我希望它能解决您的问题.
<ScrollViewer x:Name="imageScrollViewer"
VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
<ScrollViewer.Background>
<VisualBrush>
<VisualBrush.Visual>
<Image Name="pnlBackground" Source="F:\\TempScreen.PNG">
<Image.OpacityMask>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5" >
<GradientStop Offset="0.0" Color="#00000000" />
<GradientStop Offset="1.0" Color="#FF000000" />
</LinearGradientBrush>
</Image.OpacityMask>
</Image>
</VisualBrush.Visual>
</VisualBrush>
</ScrollViewer.Background>
<WrapPanel x:Name="panel" Orientation="Horizontal" >
<ListBox
Margin="5"
SelectionMode="Extended"
SelectedIndex="0"
>
</ListBox>
</WrapPanel>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)