Я работаю над фотогалереей для Windows Phone 7, и я пытаюсь заставить каждое изображение снимать весь экран и скользить по горизонтали. Что я делаю до сих пор, так это использовать список, который я изменил для прокрутки по горизонтали, но проблема в том, что я не могу найти способ привязать ширину и высоту ListboxItem с помощью ActualWidth и ActualHeight Перечислите себя. Причина, по которой я хочу сделать это, заключается в том, что если ориентация телефона изменится, размер фотографий изменится, чтобы соответствовать экрану.Silverlight - Binding Listbox ActualWidth to ListboxItem Width
Ниже приводится код, который я получил до сих пор (я попытался с помощью TemplatedParent и RelativeSource, но я должен делать что-то не так, как это не работает вообще):
<Style x:Key="PhotoGalleryItem" TargetType="ListBoxItem">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid x:Name="ListBoxItemRoot" HorizontalAlignment="Stretch" Margin="4,0,4,0" Width="{Binding RelativeSource={RelativeSource TemplatedParent},Path=ActualWidth}">
<Image Source="{Binding Mode=OneWay}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="controls:PhotoGallery">
<Setter Property="Background" Value="Red"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:PhotoGallery">
<Border BorderBrush="Transparent" BorderThickness="0" >
<Grid x:Name="LayoutRoot" Background="{TemplateBinding Background}">
<ScrollViewer x:Name="Scroller" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden" >
<ItemsPresenter/>
</ScrollViewer>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemContainerStyle" Value="{StaticResource PhotoGalleryItem}" />
</Style>
Любая идея о как достичь этого результата?
Благодаря
Вы добавив следующий код в конструктор вашей страницы приложения? Поддерживаемые ресурсы = Поддерживаемые параметры. Portrait | SupportedPageOrientation.Landscape; –