ยึดกล่องข้อความไปทางขวาและซ้าย (เพื่อให้ขยายออกเมื่อปรับขนาดพาเรนต์)

ฉันกำลังมองหา XAML ที่เทียบเท่ากับคุณสมบัติ Anchor ของ Winforms ฉันต้องการยึด TextBox ที่อยู่บน Canvas (ในแอป UWP) ไปทางซ้ายและขวา ดังนั้นมันจะอยู่ที่ 260 จากทางซ้ายและ 10 จากทางขวาเสมอ ฉันได้ลอง หลายอย่าง แล้ว แต่สิ่งที่ดูมีแนวโน้มมากที่สุดคือ:

<TextBox Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  TextWrapping="Wrap" Text="TextBox"  Margin="260,10,10,10"/>

อย่างไรก็ตาม มันไม่ได้ทอดสมอไปทางขวา


person ispiro    schedule 02.09.2015    source แหล่งที่มา
comment
คุณสามารถเพิ่มบริบทเพิ่มเติมให้กับ XAML ของคุณได้หรือไม่? คำจำกัดความของการปิดล้อมภาชนะ?   -  person Steve    schedule 02.09.2015
comment
@Steve ไม่มีอะไรพิเศษ - A Grid with Margin 0. บน Canvas ที่มี Margin 10 (และสีพื้นหลัง) และในเรื่องนั้น - กล่องข้อความ ฉันแน่ใจว่าจะลบสิ่งอื่นทั้งหมดออกเพื่อไม่ให้รบกวน และใช่ ฉันรันโปรแกรม ไม่ใช่แค่เชื่อใจนักออกแบบเท่านั้น เมื่อฉันปรับขนาดหน้าต่าง - Canvas จะถูกปรับขนาด แต่กล่องข้อความไม่ปรับขนาด   -  person ispiro    schedule 02.09.2015
comment
comment
@ สตีฟขอบคุณ แต่ฉันจะเปลี่ยน Width="{Binding ActualWidth , ElementName=Canvas1}" เป็นการผูกกับ Width - 270 ได้อย่างไร (อาจเป็นคำถามเบื้องต้น แต่ฉันเพิ่งเริ่มต้นด้วย XAML ฉันลองเพิ่ม - 270 แล้ว แต่ก็ไม่ได้ผล)   -  person ispiro    schedule 02.09.2015


คำตอบ (1)


ฉันจะใช้ 3 คอลัมน์ Grid

<Grid x:Name="YourOuterGrid">
    <Grid VerticalAlignment="Top">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="160" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="10" />
        </Grid.ColumnDefinitions>
        <TextBox TextWrapping="Wrap" Grid.Column="1" />
    </Grid>
</Grid>
person Justin XL    schedule 02.09.2015
comment
ฉันยอมรับสิ่งนี้ (และคุณสมควรได้รับตัวแทนสำหรับคำตอบสำหรับคำถามและความคิดเห็นอื่น ๆ อย่างแน่นอน!) แต่ฉันจะทราบว่าการตั้งค่า Margins มักจะเป็นวิธีการแก้ปัญหาที่นี่ ยกเว้นว่าฉันไม่รู้ว่า Canvas มีความพิเศษใน ว่ามันไม่สนใจพวกเขา - person ispiro; 25.09.2015
comment
คุณพูดถูกอย่างแน่นอน โดยปกติคุณเพียงแค่ต้องตั้งค่า Margin แต่ฉันคิดว่าคุณต้องการให้คอนเทนเนอร์หลักห่อมันด้วยเหตุนี้คำตอบ :) - person Justin XL; 25.09.2015