Microsoft-ui-xaml: TextBlock y TextBox no se alinean

Creado en 12 may. 2019  ·  3Comentarios  ·  Fuente: microsoft/microsoft-ui-xaml

Quiero poner un TextBlock y un TextBox uno al lado del otro, pero el contenido del texto no se alinea:

image

¿Por qué no? ¿No es TextBox como un TextBlock con un borde?

Comportamiento esperado

El contenido de texto de TextBox y TextBlock se alinea cuando se apilan horizontalmente.

Información de la versión


| Versión de Windows 10 | ¿Vio el problema? |
| : --------------------------------- | : -------------------- |
| Compilación de información privilegiada (xxxxx) | |
| Actualización de octubre de 2018 (17763) | X |
| Actualización de abril de 2018 (17134) | |
| Actualización de Fall Creators (16299) | |
| Actualización de creadores (15063) | |
| Actualización de aniversario (14393) | |


| Factor de forma del dispositivo | ¿Vio el problema? |
| : -------------------- | : ------------------- |
| Escritorio | X |
| Móvil | |
| Xbox | |
| Surface Hub | |
| IoT | |

Contexto adicional

<UserControl
    x:Class="App.Controls.MyUserControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App.Controls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300"
    d:DesignWidth="400">

    <Grid Background="White">
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <TextBlock Text="Position" VerticalAlignment="Center" Grid.Column="1" Grid.Row="1"/>
        <TextBox Text="Position" VerticalAlignment="Center" Grid.Column="2" Grid.Row="1"/>
    </Grid>
</UserControl>
area-Density area-UIDesign bug team-Controls

Comentario más útil

Esto parece ser una regresión de los cambios de densidad aplicados en 1809. Sé que se trabajó hace años en una versión anterior para alinear el texto entre los controles. @mdtauk Baseline Alignment (u otras opciones de alineación de texto) sería una gran propuesta de características.

Veré si puedo encontrar una solución antes de que podamos abordar esta regresión en una actualización del paquete WinUI2.x.

Todos 3 comentarios

La diferencia de espaciado se debe a que TextBox tiene espacio para Header y Description , así como para Border .
Curiosamente, si ambos están especificados y TextBlock está centrado verticalmente, entonces el texto del ejemplo anterior se alinea verticalmente.

Me preocuparía mucho cualquier cambio en los márgenes predeterminados (o relleno) dentro de las plantillas de cualquiera de estos controles para que se alineen en el escenario dado.
Si bien sería bueno si estuvieran alineados, cualquier cambio en los valores predeterminados corre el riesgo de cambiar el diseño de cualquier aplicación que use estos controles, que sería cualquier aplicación que muestre texto. Los cambios también corren el riesgo de deshacer las aplicaciones ya ajustadas para tener en cuenta el comportamiento actual.
Si bien el comportamiento actual es indeseable, la solución puede ser facilitar la alineación de los dos (tal vez con un estilo proporcionado que se pueda aplicar al TextBlock), en lugar de arriesgarse a las consecuencias de cambiar los valores predeterminados.

Lástima que no exista la opción BaselineAlignment , por lo que las líneas base de este tipo de controles podrían alinearse en el futuro.

Esto parece ser una regresión de los cambios de densidad aplicados en 1809. Sé que se trabajó hace años en una versión anterior para alinear el texto entre los controles. @mdtauk Baseline Alignment (u otras opciones de alineación de texto) sería una gran propuesta de características.

Veré si puedo encontrar una solución antes de que podamos abordar esta regresión en una actualización del paquete WinUI2.x.

¿Fue útil esta página
0 / 5 - 0 calificaciones