في XAML كيف أقول: العرض الافتراضي والارتفاع عن مثل مربع الكتابة

StackOverflow https://stackoverflow.com/questions/503233

سؤال

وهكذا أنا قادم في WPF من منظور HTML.

وأريد فقط أن وضع TextBox على نافذتي مثل هذا:

<Grid>
    <TextBox Name="theName" />
</Grid>

وتبين أن TextBox هو ثم ضخم، تغطي النافذة بالكامل. (!)

حسنا، هذا ليس ما أريد، ولكن لا أريد لتحديد حجم بالضبط إما منذ أعرف Height وWidth ينبغي أن تكون مرنة، لذلك أحاول:

<TextBox Name="theName" Width="Auto" Height="Auto"/>

ونفس الشيء. ولذلك فإنني أحاول:

<TextBox Name="theName" 
    HorizontalAlignment="Stretch" 
    VerticalAlignment="Stretch"/>

ونفس الشيء. لذلك أنا فقط بجد رمز أحجام:

<TextBox Name="theName" Width="100" Height="20"/>

ما أعرف ليست ممارسة برمجة جيدة في برنامج الأغذية العالمي.

وهكذا، ما كيف يمكنك معرفة TextBox إلى "أحجام الافتراضي عرض لحجم الخط تستخدم"؟

هل كانت مفيدة؟

المحلول

ويمكنك أن تأخذ مثلا بريان أبعد من ذلك قليلا. عن طريق تحديد محاذاة المحددة التي لا تمتد وزيادة تقييد مربع نص بحيث لن التوسع خارج حجم معين. على سبيل المثال:

<Grid x:Name="LayoutRoot">
        <TextBox HorizontalAlignment="Left" VerticalAlignment="Top" Text="TextBox" TextWrapping="Wrap" 
        MinWidth="15" MinHeight="20" MaxWidth="500" MaxHeight="50"/>
</Grid>

ويمكنك أن أعتبر أبعد من ذلك من خلال إنشاء الصفوف / الأعمدة داخل الشبكة وتقييد تطويرها في مختلف الأزياء. كما كنت قادما من خلفية HTML، أعتقد أنه من مثل استخدام جدول للسيطرة على التخطيط. تذكر أنه يمكنك أيضا عش أخرى كائنات حاوية (أي StackPanels، WrapPanels، وغيرها من الشبكات، الخ ...).

والتحدي مع XAML وبرنامج الأغذية العالمي / الضوابط سيلفرلايت هو أنها مرنة جدا، لذلك كنت قد حصلت على الحصول على التعامل مع جميع الخيارات وكيف أنها تؤثر على التخطيط.

وحظا سعيدا. انا ذاهب من خلال نفس هذا الشيء بالضبط الآن.

نصائح أخرى

استخدم حاوية مختلفة. الشبكة تمتد دائما يتحكم الطفل لملء الخلية الشبكة.

هل يمكن استخدام مثل وstackpanel الذي يمتد فقط ضوابطها في اتجاه واحد.

وبالإضافة إلى استخدام لوحة مختلفة كما ذكر ستيفان هل يمكن أن مجرد إعطاء مربع نص محاذاة التي لا تمتد. منها مثلا.

<TextBox Name="theName" HorizontalAlignment="Left" VerticalAlignment="Top"/>

وأحجام في WPF ليست بكسل، فهي "جهاز بكسل المستقلة" التي هي 1/96 من شبر واحد - حتى في إعداد DPI العادي اليوم أنها خريطة 1: 1 إلى بكسل

.

ولكن، إذا قمت بتشغيل البرنامج في وضع DPI العالية سوف مربع نص تنمو مع DPI (والخط).

وهكذا وضع حجم القرص الثابت تلوينها ليست بهذا السوء.

وعدا ذلك يمكنك فقط استخدام HorizontalAlignment وVerticalAlignment التي ليست "تمدد"، هذه الإرادة حجم مربع نص لالمحتوى - ولكن بعد ذلك مربع نص فارغ تكون صغيرة

ويمكنك تعيين VerticalAlignment إلى "المركز"، "أعلى" أو "أسفل" للحصول على ارتفاع التلقائي عن سطر واحد (ربما مدعومة إعداد MinHeight لتجنب المشاكل الخطوط صغيرة حقا) ثم قم بتعيين العرض حتى مربع نص عرض لا تتغير أنواع المستخدم فيه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top