Microsoft-ui-xaml: لا يصطف TextBlock و TextBox

تم إنشاؤها على ١٢ مايو ٢٠١٩  ·  3تعليقات  ·  مصدر: microsoft/microsoft-ui-xaml

أرغب في وضع TextBlock و TextBox بجوار بعضهما البعض ، لكن محتويات النص لا تصطف:

image

لما لا؟ أليس TextBox مثل TextBlock بحدود؟

سلوك متوقع

يصطف محتوى نصي TextBox و TextBlock عندما يتم تكديسهما أفقيًا.

معلومات الإصدار


| إصدار Windows 10 | رأيت المشكلة؟ |
| : --------------------------------- | : -------------------- |
| بناء من الداخل (كسكسكسكسكس) | |
| تحديث أكتوبر 2018 (17763) | X |
| تحديث أبريل 2018 (17134) | |
| تحديث Fall Creators (16299) | |
| تحديث المبدعين (15063) | |
| تحديث الذكرى (14393) | |


| عامل شكل الجهاز | رأيت المشكلة؟ |
| : -------------------- | : ------------------- |
| سطح المكتب | X |
| الجوال | |
| اكس بوكس ​​| |
| Surface Hub | |
| إنترنت الأشياء | |

سياق إضافي

<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

التعليق الأكثر فائدة

يبدو أن هذا تراجع عن تغييرات الكثافة المطبقة في عام 1809. أعلم أن العمل قد تم منذ سنوات في إصدار سابق لمحاذاة النص عبر عناصر التحكم. mdtauk Baseline Alignment (أو خيارات محاذاة النص الأخرى) ستكون اقتراح ميزة رائعًا.

سأرى ما إذا كان بإمكاني التوصل إلى حل قبل أن نتمكن من معالجة هذا الانحدار في تحديث حزمة WinUI2.x.

ال 3 كومينتر

يرجع الاختلاف في التباعد إلى أن TextBox به مساحة لـ Header و Description ، بالإضافة إلى Border .
الغريب ، إذا تم تحديد كلاهما وتم توسيط TextBlock عموديًا ، فسيتم محاذاة النص في المثال أعلاه عموديًا.

سأكون قلقًا للغاية بشأن أي تغيير في الهوامش الافتراضية (أو الحشو) داخل قوالب أيٍ من عناصر التحكم هذه بحيث تصطف في السيناريو المحدد.
في حين أنه سيكون من الجيد أن تتم محاذاةهما ، فإن أي تغيير في الإعدادات الافتراضية يخاطر بتغيير تخطيط أي تطبيق يستخدم عناصر التحكم هذه ، والتي ستكون أي تطبيق يعرض نصًا! قد تخاطر التغييرات أيضًا بالتراجع عن أي تطبيقات تم تعديلها بالفعل لمراعاة السلوك الحالي.
في حين أن السلوك الحالي غير مرغوب فيه ، قد يكون الحل هو تسهيل محاذاة الاثنين (ربما بأسلوب متوفر يمكن تطبيقه على TextBlock) ، بدلاً من المخاطرة بعواقب تغيير أي إعدادات افتراضية.

من المؤسف أنه لا يوجد خيار BaselineAlignment لذلك يمكن جعل الخطوط الأساسية لهذه الأنواع من عناصر التحكم للمحاذاة في المستقبل.

يبدو أن هذا تراجع عن تغييرات الكثافة المطبقة في عام 1809. أعلم أن العمل قد تم منذ سنوات في إصدار سابق لمحاذاة النص عبر عناصر التحكم. mdtauk Baseline Alignment (أو خيارات محاذاة النص الأخرى) ستكون اقتراح ميزة رائعًا.

سأرى ما إذا كان بإمكاني التوصل إلى حل قبل أن نتمكن من معالجة هذا الانحدار في تحديث حزمة WinUI2.x.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات