Prithvi Venu
Prithvi Venu

Reputation: 274

TextBox does not stretch horizontally in UWP

enter image description here

The Blue Part is my textbox and red is my relative panel. The relative panel is placed in a list view

<ListView RelativePanel.Below="Line" Name="SubTasksListView" Margin="10,10,10,0"   HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch"   ItemsSource="{x:Bind subtasks}" IsItemClickEnabled="True" ItemClick="ItemClick"   ItemTemplate="{StaticResource SubTaskDataTemplate}"/>



 <DataTemplate x:DataType="data:ZTask" x:Key="SubTaskDataTemplate">
 <RelativePanel Margin="10,10,20,10"  HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" Background="Red" >
            <TextBox Background="Aqua" BorderThickness="0,0,0,0" BorderBrush="#8888" HorizontalContentAlignment="Stretch"  KeyDown="Box_KeyDown" RelativePanel.AlignLeftWithPanel="True" Name="SubTaskTitle" PlaceholderText="+ Subtask" FontSize="16"   Margin="0"/>
            <Line Name="Line" Stretch="Fill" Margin="10 0 0 0" Stroke="#8888" X2="1" Opacity="0.2" RelativePanel.Below="SubTaskTitle"/>
</RelativePanel>
</DataTemplate>

I have tried HorizontalAlignment="Stretch" and HorizontalContentAlignment="Stretch" but it doesn't work.Please Help me solve this issue

Upvotes: 0

Views: 379

Answers (2)

Yury Schkatula
Yury Schkatula

Reputation: 5369

I believe, this is due the lack of exact alignment instructions, as Relative Panel is a bit conservative to minimize potential conflicts between inner elements and their layout desires. So, could you try to explicitly set both left and right alignment, like this:

... RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignRightWithPanel="True" ...

Upd: and yes, it seems in your case the layout could be simplified by using Grid element because there are too few inner controls (just two) so it's not an issue to position them.

Upvotes: 2

Prithvi Venu
Prithvi Venu

Reputation: 274

Using Grid instead of relative panel worked for me

 <Grid Margin="10,10,20,10"  HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" >
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition />
            </Grid.RowDefinitions>
            <TextBox  BorderThickness="0,0,0,0" BorderBrush="#8888" HorizontalContentAlignment="Stretch"  KeyDown="Box_KeyDown"  Name="SubTaskTitle" PlaceholderText="+ Subtask" FontSize="16"   Margin="0"/>
            <Line Name="Line" Stretch="Fill" Margin="10 0 0 0" Stroke="#8888" X2="1" Opacity="0.2" Grid.Row="1"/>
        </Grid>

But I still am not able to figure out why it does not work with relative panel, Someone please post the answer using relative panel.

Upvotes: 0

Related Questions