【问题标题】:Adaptive UI UWP自适应 UI UWP
【发布时间】:2016-02-23 13:57:32
【问题描述】:

我正在尝试了解自适应 UI。我经常使用引导程序,但正在使用xaml 设计 Windows 10 应用程序。我希望 textboxestextbloxks 根据用户是否缩小窗口进行调整。这是我所拥有的,但它不是adapting,也不是响应式的。

<Grid Grid.Row="1">
        <TextBlock HorizontalAlignment="Left" FontSize="24" Margin="10,22,0,0" Grid.Row="1" TextWrapping="Wrap" Text="Title" VerticalAlignment="Top"/>
        <TextBox x:Name="txtBoxTitle" Margin="79,24,0,0" Grid.Row="1" Width="800" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalAlignment="Left"/>
        <TextBlock HorizontalAlignment="Left" FontSize="24" Margin="10,131,0,0" Grid.Row="1" TextWrapping="Wrap" Text="Body" VerticalAlignment="Top"/>
        <TextBox x:Name="txtBoxBody" Margin="79,133,-225,0" Grid.Row="1" Width="800" Height="500" TextWrapping="Wrap" AcceptsReturn="True" HorizontalAlignment="Left" VerticalAlignment="Top"/>
        <Button x:Name="btnSubmitArticle" Content="Submit" HorizontalAlignment="Left" VerticalAlignment="Bottom"  Margin="80,20,20,20" d:LayoutOverrides="Width"/>
    </Grid>

其他问题

如何将文本框中的文本一直拉到窗口右侧,并使其在屏幕尺寸发生变化时正确响应。

<RelativePanel Margin="12,12">
           <TextBlock x:Name="txtBoxDate"
           RelativePanel.AlignLeftWithPanel="True"
           RelativePanel.AlignRightWithPanel="True"
           FontSize="14" 
           TextAlignment="Right"
           TextWrapping="Wrap" 
           Text="Title" />
</RelativePanel>

谁能指出我正确的方向,根据屏幕尺寸使这些元素具有响应性?

【问题讨论】:

    标签: xaml windows-10 uwp adaptive-ui


    【解决方案1】:

    假设整行拉伸,问题在于您正在设置这些元素的宽度(以及一些奇怪的边距,可能是因为您从工具箱中拖放了控件)。您可以使用 RelativePanel 很好地堆叠项目并让它们在面板内从左到右拉伸:

    <RelativePanel Margin="12,0">
        <TextBlock x:Name="FirstTextBlock"
                   RelativePanel.AlignLeftWithPanel="True"
                   RelativePanel.AlignRightWithPanel="True"
                   FontSize="24" 
                   TextWrapping="Wrap" 
                   Text="Title" />
        <TextBox x:Name="txtBoxTitle" 
                 RelativePanel.Below="FirstTextBlock"
                 RelativePanel.AlignLeftWithPanel="True"
                 RelativePanel.AlignRightWithPanel="True"
                 Margin="0,8,0,0" 
                 TextWrapping="Wrap" />
        <TextBlock x:Name="SecondTextBlock" 
                   RelativePanel.Below="txtBoxTitle"
                   RelativePanel.AlignLeftWithPanel="True"
                   RelativePanel.AlignRightWithPanel="True"
                   FontSize="24" 
                   Margin="0,8,0,0" 
                   TextWrapping="Wrap" 
                   Text="Body" />
        <TextBox x:Name="txtBoxBody" 
                 RelativePanel.Below="SecondTextBlock"
                 RelativePanel.AlignLeftWithPanel="True"
                 RelativePanel.AlignRightWithPanel="True"
                 Margin="0,8,0,0" 
                 Height="500" 
                 TextWrapping="Wrap" 
                 AcceptsReturn="True" />
        <Button x:Name="btnSubmitArticle" 
                RelativePanel.Below="txtBoxBody"
                Content="Submit" 
                Margin="0,8,0,0" 
                d:LayoutOverrides="Width"/>
    </RelativePanel>
    

    【讨论】:

    • 我看到这有点像我在寻找它......你能进一步解释一下它是如何工作的吗?我和Bootstrap很像,所以如果你想和那个比较的话......
    • 有没有办法让我将相关面板设置在窗口的右侧?除了边距?
    • @Code 你能不能用 Bootstrap 来做,并附上截图来说明你到底想达到什么目的?
    • 我只是想把文本块拉到右边,所以
    • @Code 将 TextAlignment 设置为右。 TextAlignment="右"。
    猜你喜欢
    • 2017-07-27
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    相关资源
    最近更新 更多