Установка ширины текстового поля Silverlight относительно - PullRequest
0 голосов
/ 31 марта 2010

Я попытался найти ответ на свой вопрос в stackoverflow, но, похоже, не нашел ничего подходящего.

Поскольку я относительно новичок в Silverlight, я даже не уверен, возможно ли это, но я пытаюсь выяснить, возможно ли установить значение ширины элемента управления текстового поля Silverlight пропорционально его непосредственному родительскому контейнеру?

Было бы неплохо избежать жесткого кодирования значения ширины. Скажем, вы хотите поместить текстовый элемент управления в горизонтально выровненный элемент управления StackPanel, и его ширина всегда динамически регулируется, чтобы составлять 80% от общей ширины StackPanel.

Возможно ли это сделать декларативно в разметке xaml, или мне потребуется прибегнуть к некоторому фрагменту кода, связанному с каким-либо обработчиком событий, для достижения этой цели?

Кстати, в настоящее время я использую Visual Web Developer Express 2008 для написания кода Silverlight.

спасибо заранее, John

Ответы [ 2 ]

2 голосов
/ 01 апреля 2010

Используйте Grid вместо стековой панели. Нечто подобное будет работать.

<Grid x:Name="LayoutRoot" Background="White">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="80*" />
        <ColumnDefinition Width="20*" />
    </Grid.ColumnDefinitions>
    <TextBox Grid.Column="0" />
</Grid>

Просто установите ширину определения столбца, чтобы она была пропорциональна вашим потребностям. Если вы хотите определенную ширину, пропустите * (звездочку). Если вы хотите пропорциональный, добавьте * (звездочка) и используйте любую схему, которую вы хотите для определения пропорций (они могут составить любое число, которое вы хотите). В моем примере числа прибавляются к 100. Но вы можете использовать дробные числа или что угодно.

1 голос
/ 31 марта 2010

Звучит так, как будто вы хотите <Grid> вместо <StackPanel>. Просто поместите TextBox в столбец, ширина которого установлена ​​на .8.

...