【问题标题】:TextBox does not stretch horizontally in UWPTextBox 在 UWP 中不会水平拉伸
【发布时间】:2019-12-26 23:01:55
【问题描述】:

蓝色部分是我的文本框,红色部分是我的相关面板。相关面板被放置在列表视图中

<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>

我尝试过 Horizo​​ntalAlignment="Stretch" 和 Horizo​​ntalContentAlignment="Stretch" 但不起作用。请帮我解决这个问题

【问题讨论】:

    标签: c# visual-studio xaml uwp uwp-xaml


    【解决方案1】:

    我相信,这是由于缺乏精确的对齐说明,因为相对面板有点保守,以尽量减少内部元素与其布局需求之间的潜在冲突。那么,您能否尝试显式设置左右对齐方式,如下所示:

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

    更新:是的,在您的情况下,布局似乎可以通过使用 Grid 元素来简化,因为内部控件太少(只有两个),因此定位它们不是问题。

    【讨论】:

    • 效果很好,谢谢
    【解决方案2】:

    使用 Grid 而不是相关面板对我有用

     <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>
    

    但我仍然无法弄清楚为什么它不适用于相关面板,请有人使用相关面板发布答案。

    【讨论】:

    • 嘿,上面的 sn-p 看起来您正在将任务(约会)添加到用户日历或 google/iOS 日历??
    • 不,不一样
    • 您知道如何在 uwp(桌面应用程序)中将任务添加到谷歌日历吗? link
    猜你喜欢
    • 2020-01-25
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多