2013-04-19 2 views
1

Возможно ли иметь какое-то изображение размытой границы при прокрутке? Чтобы лучше понять, я добавил фотографию того, что хочу, чтобы успеть.xaml ScrollViewer, размытая граница - приложение для Windows Store

Ограничение, которое у меня есть, что под ScrollViewer У меня есть фоновое изображение. Таким образом, я не могу использовать заполненный Rectangle с белым до прозрачного градиента в левой части ScrollViewer.

enter image description here

ответ

2

С WinRT отказалась от поддержки OpacityMask, и я не уверен, что если вы хотите установить его с альфа-каналом. С учетом сказанного, хотя, почти всегда есть работа вокруг. Так что, если вы просто используете естественный z-порядок и подделываете его? Что-то вроде этого;

<!-- Grid as Container --> 
<Grid> 

    <ScrollViewer VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Visible"> 
     <!-- example backgrounds, like images, just for the concept example. --> 
     <StackPanel Orientation="Horizontal"> 
      <Rectangle Height="75" Width="300" Fill="Red" Margin="20,0"/> 
      <Rectangle Height="75" Width="300" Fill="Red" Margin="20,0"/> 
      <Rectangle Height="75" Width="300" Fill="Red" Margin="20,0"/> 
      <Rectangle Height="75" Width="300" Fill="Red" Margin="20,0"/> 
      <Rectangle Height="75" Width="300" Fill="Red" Margin="20,0"/> 
     </StackPanel> 
    </ScrollViewer> 

    <!-- An adhoc gradient overlay to just float over the ScrollViewer itself. 
     Then using Margin to fit it to the shape of the Scrollviewer and still 
     allow hit visibility to the scrollbar etc. --> 

    <Rectangle Width="50" HorizontalAlignment="Left" Margin="1,1,0,20"> 
     <Rectangle.Fill> 
      <LinearGradientBrush EndPoint="1,0.5" StartPoint="0.1,0.5"> 
       <GradientStop Color="White" Offset="0.3"/> 
       <GradientStop Color="Transparent" Offset="1"/> 
      </LinearGradientBrush> 
     </Rectangle.Fill> 
    </Rectangle> 

</Grid> 

Конечно, вы, вероятно, захотите изменить некоторые значения, как в RectangleMargin в примере, чтобы сделать его выглядеть точно правильно с вашей собственной установки, но концепция должна быть там и вариант. Надеюсь это поможет.

+0

Это именно то, что я пробовал, но, как вы можете прочитать в моем вопросе, я установил фоновое изображение страницы. Поэтому я получаю вертикальную белую полосу на моей странице с этим решением. Не существует способа получить «эффект размытия» без использования белого цвета? – Johann

+0

Так что просто уточнить, поскольку, видимо, не понял. У вас есть ScrollViewer поверх изображения, которое вы используете в качестве фона, и в этом прокрутке вы показываете изображения? Ваше маленькое изображение похоже на scrollviewer, с изображением в нем? Возможно, вам следует сделать снимок, который вы полностью используете для лучшей визуальной справки о том, с чем имеете дело, потому что, по-видимому, сложно представить на основе описания и изображения, чтобы понять ваши требования. –

+0

Я только что загрузил новый проект того, что я хотел бы получить. Изображение с цветком - фоновое изображение главной сетки. Затем есть ScrollViewer, содержащий изображения (чтобы сделать его простым). В моем реальном случае у меня есть GridView в Scrollviewer, который содержит Images и TextBlocks переменной высоты. – Johann

Смежные вопросы