Search code examples
c#windowsxamlwindows-phone-8windows-phone-8.1

Resize grid after rotation Windows phone 8.1


[![enter image description here][1]][1]I have problem with panel size in ListView. I have StackPanel in GridView and after rotation i want resize this gridview to the whole page, but after rotate stackPanel had the same widht as he had in portrait mode. Here is my code. But when I start application on Landscape mode it is all ok and grid is resized.

<Page
x:Class="KlientWP.VypisZakazek"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:KlientWP"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" Loaded="Page_Loaded" SizeChanged="Page_SizeChanged">
<Page.Background>
    <SolidColorBrush Color="{ThemeResource PhoneImagePlaceholderColor}"/>
</Page.Background>

<Grid x:Name="ContentRoot" Margin="0,9.5,0,0">

    <ScrollViewer>
        <Pivot Title="Přehled databáze" HorizontalAlignment="Stretch"  Margin="0,0,0,0">

            <PivotItem Header="Zakázky" HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" Margin="10,0,20,10" >

                <ListView SelectionMode="None" x:Name="ListBox1" Margin="0,0,-0.167,0.167"
HorizontalAlignment="Stretch"
 ItemsSource="{Binding}" >
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid x:Name="grdTsk" Opacity="1" Margin="0,0,0,10" Width="1500" HorizontalAlignment="Stretch" Background="#FF302E2E"  ManipulationMode="All" Tapped="grdTsk_Tapped" >
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="20"/>
                                    <RowDefinition Height="30"/>
                                </Grid.RowDefinitions>
                                <FlyoutBase.AttachedFlyout>
                                <MenuFlyout>
                                    <MenuFlyoutItem Text="Detail zakázky" Click="Detail" />
                                </MenuFlyout>
                            </FlyoutBase.AttachedFlyout>

                            <TextBlock Grid.Row="1" Text="{Binding nazev1}" Width="1500" FontSize="22" TextWrapping="Wrap" HorizontalAlignment="Stretch" Margin="5,0,0,0" Visibility="Visible" FontWeight="Light" Foreground="White"/>
                                <!--<StackPanel>

                                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Margin="0,0,0,0" >
                                        <TextBlock Text="{Binding nazev}" FontSize="22" TextWrapping="Wrap" Margin="5,0,0,0" Visibility="Visible" FontWeight="Light" Foreground="White"/>

                                </StackPanel>
                                <StackPanel Orientation="Horizontal" Margin="0,0,0,0">


                                        <TextBlock x:Name="predmetTb"  Text="{Binding zakazka}" FontSize="18" Margin="5,0,0,0" TextWrapping="Wrap" />
                                        <TextBlock Text="{Binding kod_firmy}" FontSize="18" TextWrapping="Wrap" Margin="15,0,0,0" Foreground="#FFFFF413" />




                                </StackPanel>
                            </StackPanel>-->
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

        </PivotItem>


    </Pivot>
    </ScrollViewer>
</Grid>

binding:

       CultureInfo culture = new CultureInfo("cs-CZ");

            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<dataInfo>));
            MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(json));
            var obj = (List<dataInfo>)ser.ReadObject(stream);
  List<dataInfo> VypisZakazekli = new List<dataInfo>();


            VypisZakazekli.Clear();

            foreach (dataInfo di in obj)
            {

                string iZakazka = "ID: " + di.zakazka;
                string sNazev = di.nazev;
                string sKod = "Firma: " + di.kod_firmy;
                string sStatus = "Status: " + di.status_v;
                string sDruh = di.druh_zakazky;
                VypisZakazekli.Add(new dataInfo(iZakazka, sNazev, sKod, sStatus, sDruh));
            }


            this.ListBox1.ItemsSource = VypisZakazekli;
    }

Solution

  • Try to add this to your listview :

    <ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
    </ListView.ItemContainerStyle>