Windows phone 8 如何在按钮上在垂直和水平方向之间切换ListBox数据模板方向在windows phone 8中从Appbar单击

Windows phone 8 如何在按钮上在垂直和水平方向之间切换ListBox数据模板方向在windows phone 8中从Appbar单击,windows-phone-8,listbox,orientation,datatemplate,itemtemplate,Windows Phone 8,Listbox,Orientation,Datatemplate,Itemtemplate,我有一个图片页面图片正在从我的随机URL加载到我的列表框中,我在这个页面中有ApplicationBar,我创建了两个按钮,一个用于以网格格式显示库页面,另一个用于以列表格式显示库页面,默认情况下,我的库视图为网格格式。现在,我希望通过单击应用程序栏上的按钮,以列表格式显示其视图 我尝试了转换器来转换我的ListBox的stackPanel的方向,但没有成功。 我试图通过获取ListBox的x:Name属性来更改方向,但没有成功 我在谷歌上搜索了以下查询,但没有找到合适的解决方案。 “如何在wi

我有一个图片页面图片正在从我的随机URL加载到我的列表框中,我在这个页面中有ApplicationBar,我创建了两个按钮,一个用于以网格格式显示库页面,另一个用于以列表格式显示库页面,默认情况下,我的库视图为网格格式。现在,我希望通过单击应用程序栏上的按钮,以列表格式显示其视图

我尝试了转换器来转换我的ListBox的stackPanel的方向,但没有成功。 我试图通过获取ListBox的x:Name属性来更改方向,但没有成功

我在谷歌上搜索了以下查询,但没有找到合适的解决方案。 “如何在windows phone 8中的“从应用程序栏单击”按钮上在垂直和水平方向之间切换列表框数据模板方向”

我正在显示我的ListBoxPage.xaml

 <ListBox Name="listCloudBooks" Visibility="Visible" Grid.Row="1" ScrollViewer.VerticalScrollBarVisibility="Auto" FontFamily="Segoe UI" FontStyle="Normal" FontWeight="Thin" Margin="0,0,0,50">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <tools:WrapPanel Orientation="Horizontal">
                </tools:WrapPanel>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        <ListBox.ItemContainerStyle>
            <Style TargetType="ListBoxItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
            </Style>
        </ListBox.ItemContainerStyle>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Border BorderThickness="1" Background="#151414" CornerRadius="3" Margin="3" Width="150" TextOptions.DisplayColorEmoji="True" BorderBrush="#1c1b1b">
                    <StackPanel Orientation="Vertical">
                        <StackPanel Orientation="Horizontal">
                            <Image x:Name="imgBookImage" Source="{Binding CLover}" Visibility="Visible" VerticalAlignment="Top" HorizontalAlignment="Center"
                                       Width="80" Height="100"/>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Visibility="{Binding IsVisible}" Text="{Binding prgo}" FontFamily="Segoe UI" FontSize="18" FontWeight="ExtraBold" Foreground="White" Margin="5,0"></TextBlock>
                            </StackPanel>
                        </StackPanel>
                        <StackPanel Orientation="Vertical">
                            <TextBlock Text="{Binding FName}" FontFamily="Segoe UI" FontSize="13.5" 
                                       Foreground="White" TextTrimming="WordEllipsis"
                                       VerticalAlignment="Top" HorizontalAlignment="Left" 
                                       TextWrapping="Wrap" 
                                       Width="300" Padding="2"/>
                            <TextBlock Text="{Binding LName}" FontSize="13.5" FontFamily="Segoe UI" 
                                       Foreground="White"
                                       VerticalAlignment="Top" HorizontalAlignment="Left" 
                                       TextWrapping="Wrap" 
                                       Width="300" Padding="2"/>
                            <ProgressBar x:Name="downloadProgressBar" Foreground="Green" IsIndeterminate="True" VerticalAlignment="Center"  Width="120" TextOptions.TextHintingMode="Animated" Visibility="{Binding IsVisible}"  CharacterSpacing="2"/>
                            <Button Content="Hello" x:Name="btnDownload" IsEnabled="{Binding IsEnableButton,
                                       Click="btnDownload_Click" Tag="{Binding}" Width="120" BorderThickness="1" FontSize="13.5" Margin="0,5" 
                                       FontFamily="Segoe UI" tools:SlideInEffect.LineIndex="2" HorizontalAlignment="Left" VerticalAlignment="Top" 
                                       Foreground="White">
                            </Button>

                            <Image x:Name="imgCancelImage" Source="/Assets/Tiles/CancelImage.png" HorizontalAlignment="Right" Width="25" Height="25" Tag="{Binding}"/>
                            <Button x:Name="btnDeleteBook" Click="btnDeleteBook_Click"
                                        Tag="{Binding}" BorderThickness="1" Margin="97,-66,0,0" 
                                        Height="55" Width="55"
                                <Button.Background>
                                    <ImageBrush ImageSource="/Images/delete.png" Stretch="Fill"></ImageBrush>
                                </Button.Background>
                            </Button>
                        </StackPanel>
                    </StackPanel>
                </Border>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>


我已经找到了它的替代解决方案,我所做的是创建了两个具有不同名称属性的列表框,并使visibility=“Collapsed”和Orientation=“Horizontal”。在第二个列表框中,我使用不同的名称和Visibility Property=“Visible”创建并指定了方向=“Vertical”


所以在btnList上,我只玩可见性。

这件作品是silverlight StackPanel1。方向=方向。水平;对于哪个控件,您需要更改方向,因为有4种不同的控件可以更改它们的方向?MatDev8我无法在我的代码中获取x:Name属性,因此我无法直接为特定stackpanel的方向属性赋值。@Toni Petrina您说得对。我想改变主堆叠面板的方向。你说你试过使用转换器,但没用,为什么?这听起来是一个合理的解决方案。