2013-04-03 20 views
11

Próbuję utworzyć przycisk w XAML z 80% szerokości, ale nie mogę się dowiedzieć, jak. Najwyraźniej nie jest to tak proste jak użycie Width = "80%". Myślałem, że można to zrobić poprzez wykrycie szerokości ekranu i pomnożenie przez 0,8 i użycie go jako szerokości, ale nie jestem pewien, jak mogę to zrobić w XAML. Być może trzeba to zrobić w pliku .cs, a następnie dostosować szerokość stamtąd. Czy ktoś ma rozwiązanie tego?Jak ustawić szerokość XAML w procentach?

Odpowiedz

32

Czy to WPF?

Jeśli tak, to zawiń kontrolę (przycisk) w siatce. Następnie określ definicję kolumny siatki. Przykład:

<Grid> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="0.2*"></ColumnDefinition> 
    <ColumnDefinition Width="0.8*"></ColumnDefinition> 
    </Grid.ColumnDefinitions> 
    <Button Grid.Column="1" Grid.Row="0"></Button> 
</Grid> 

Edit: zapomnij zamknąć <Button> tag.

+0

Błąd Wartość „przycisk” typu nie mogą być dodawane do kolekcji lub słownik typu "ColumnDefinitionCollection". Dostaję ten błąd nawet bez dodawania atrybutów siatki do przycisku. I kiedy napiszę Grid. intelliSense daje mi tylko d :, local :, mc :, x :, xml: i xmlns jako prawidłowe wybory. Próbuję dowiedzieć się, czy to WPF, ale jest to AFAIK. – Tom

+0

Być może potrzebuję włączania/używania w sekcji ? Mam na myśli dodanie schematu? – Tom

+1

Nie wpisuj swojego przycisku w bloku . Umieścić go wewnątrz bloku , ale nie w bloku . – Fendy

0

myślę, że bardziej właściwym sposobem byłoby

<Grid> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="2*"></ColumnDefinition> 
    <ColumnDefinition Width="10*"></ColumnDefinition> 
    </Grid.ColumnDefinitions> 
    <Button Grid.Column="1" Grid.Row="0"></Button> 
</Grid> 

12 dystrybucja siatki jak bootstrap, to tylko o własnych preferencji

Powiązane problemy