ComboBox не полностью виден, когда я устанавливаю ширину менее 70px в UWP? - PullRequest
0 голосов
/ 19 марта 2020

ComboBox не полностью виден, когда я установил ширину менее 70 пикселей? Что я пробовал?

ComboBox ComboBox=new ConboBox();
ComboBox.width=50;
ComboBox.height=27;

Я хочу, чтобы ширина ComboBox была 50px.

1 Ответ

1 голос
/ 19 марта 2020

Из стиля ComboBox по умолчанию существует Граница с именем Фон занимает два столбца, а его MinWidth установлен как ComboBoxThemeMinWidth, равный 64px, поэтому MinWidth ComboBox будет быть 64px. Если вы хотите установить его ширину 50, вы можете установить MinWidth of Border равным 50 или удалить свойство MinWidth, а затем применить новый стиль. Например:

.xaml:

<Style x:Key="ComboBoxStyle1" TargetType="ComboBox">
    ......
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ComboBox">
                <Grid x:Name="LayoutRoot">
                    ......
                    <Border x:Name="Background" MinWidth="50" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="{TemplateBinding CornerRadius}" Grid.ColumnSpan="2" Grid.Column="0" Control.IsTemplateFocusTarget="True" Grid.Row="1"/>
                    ...... 
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

.cs:

ComboBox ComboBox = new ComboBox();
ComboBox.Width = 50;
ComboBox.Height = 27;
ComboBox.Style = (Style)this.Resources["ComboBoxStyle1"];

О полной версии ComboBoxStyle1 можно сослаться на этот пример .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...