/ / Jak dostosować stronę xaml dla każdej rozdzielczości i ekranizować? - xaml, winrt-xaml, windows-8.1

Jak dostosować stronę xaml dla każdej rozdzielczości i ekranizować? - xaml, winrt-xaml, windows-8.1

Zajmuję się tworzeniem aplikacji sklepu Windows 8.1.Domyślnie aplikacje sklepowe Windows generują strony o rozmiarze ekranu 10,6 cala i rozdzielczości 1366 * 768. Chcę, aby moja strona Xaml pasowała do wszystkich rozmiarów ekranu i rozdzielczości. Rozwiązałem ten problem za pomocą Viewbox, ale tylko jedna strona nie zachowuje się zgodnie z oczekiwaniami. Robię to:<Viewbox> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> </Grid>

Siatka nie zajmuje całej szerokości strony, ale Viewbox bierze. Pomóż.

Odpowiedzi:

0 dla odpowiedzi № 1

Domyślnie ViewBox będzie Stretch Uniform, aby zachować proporcje jego zawartości. Możesz ustawić właściwość Rozciągnij na Wypełnienie, jeśli chcesz, aby zniekształciła się, wypełniając całą stronę.

Nie uwzględniasz zawartości siatki wTwój fragment kodu, więc nie jest jasne, co masz w sobie, aby wiedzieć, jak to się rozciągnęło. Ponieważ rozciąga się do wypełnienia w pionie, ale nie w poziomie, oczekuję, że twoje treści są wyższe niż szerokie.

Jak wspomina Chris W w swoim komentarzu, ViewBox jestprawdopodobnie nie to, czego chcesz tutaj. Generalnie lepiej jest używać elastycznych elementów sterujących, takich jak siatka. Jeśli usuniesz ViewBox, siatka (zakładając, że jest w katalogu głównym strony) rozszerzy się do pełnego rozmiaru okna. Używając względnych rozmiarów wierszy i kolumn (tak jak to robisz) zamiast rozmiarów plików twardych, układ powinien dostosować się do rozmiaru strony.

W przypadku skrajnych różnic, takich jak portret vs. krajobraz kontra chudy, możesz użyć opcji Stany wizualne, aby zapewnić różne układy dla tej samej treści. MSDN "s Szybki start: projektowanie aplikacji dla różnych rozmiarów okien szczegółowo opisuje, jak to zrobić.