Ergebnis 1 bis 13 von 13
-
Mich gibt's schon länger
- 27.05.2014, 08:30
- #1
Hallo zusammen
Ich versuche aktuell ein Template für eine ListView zu erstellen welches eine dynamische Breite hat. Dabei sollen zwei Textboxen auf einer Zeile sein, die erste Soll ganz Links sein mit einem Text und ganz rechts soll der dazugehörige Wert angezeigt werden.
Ungefähr so:
| TextEintrag 66|
Jedoch bring ich es dynamisch nur so hin:
| TextEintrag66 |
Ich habe versucht mit einem Grid die Ausrichtung auf Links und rechts zu stellen, und die Breite auf automatisch zu lassen. Ausserdem habe ich es auch schon mit Stackpanels mit einer Horizontalen Ausrichtung versucht und sonst noch diverses querbeet.
Meine Temporäre Lösung ist nun das ich den Texteintrag einfach Minimum 300px gross habe. Das wird aber auf einem Display mit grösserer Auflösung nicht sonderlich gut kommen (ausser das würde hoch skaliert werden?).
Hat jemand eine Idee wie ich das lösen kann? o.O
Gruss
NPadrutt
-
Gehöre zum Inventar
- 27.05.2014, 12:34
- #2
Wenn du in Silverlight unterwegs bist dann werden die Pixelwerte der Offsets skaliert. D.h. wenn 300 px eingestellt sind, dann sinds eben bei einem 800x480 px Display wirklich 300 px, bei einem 720p Gerät oder 1080p Gerät sinds dementsprechend mehr.
Was du sonst probieren kannst ist dass du mit den Margin's arbeitest bei den einzelnen Controls und am Control halt einstellst wo sie sich ausrichten sollen.
-
Mich gibt's schon länger
- 27.05.2014, 12:37
- #3
Danke für deine Antwort.
Also versucht habe ich das bei einem WinRT App für WP8.1. Das mit den Margins habe ich versucht. Hat aber leider nicht so geklappt wie ich mir das erhofft habe.
Beim skalieren ist 800*480 die Ausgangslage oder ist das abhängig von einer Einstellung?
-
Gehöre zum Inventar
- 27.05.2014, 13:02
- #4
Ok, WinRT - da verhält sich das XAML anders als in WP-Silverlight (bei Silverlight werden die Elemente so groß wie ihnen das Grid z.B. halt maximal Platz zugesteht. Bei WinRT bleiben sie so klein wie nötig. Am Control gibts ein Property mit dem du das Verhalten dem von SL anpassen kannst (weiß aber grad nicht auswendig wies heißt). Dann sollte die interne Ausrichtung des Controls ziehen.
Das mit dem 800x480 war auch nur beim Silverlight WP so - WinRT ist da voll dynamisch. Bin selbst aber eher aus der Silverlight-Ecke, muss mir die WinRT Variante noch genauer ansehen (bin da gerade an einem Lernprojekt aber leider grad wenig Zeit).
-
Mich gibt's schon länger
- 27.05.2014, 13:24
- #5
Ah, alles klar. Also am Control, sprich meinem UserControl oder der entsprechenden Liste / Grid / Textbox?
-
Gehöre zum Inventar
- 27.05.2014, 13:30
- #6
Sollten VerticalAlignment und HorizontalAlignment sein beim im Grid enthaltenen Control - die sollten auf Stretch stehen. Kanns genau aber erst daheim sagen - da hab ich das schon mal wo verwendet.
-
Mich gibt's schon länger
- 27.05.2014, 13:37
- #7
Dachte das Stretch habe ich gesetzt, aber bin grad nicht mehr sicher. Ich versuch das heute Abend mal und erstatte Bericht. Schonmal vielen Dank.
-
Mich gibt's schon länger
- 27.05.2014, 21:32
- #8
Also wenn ich mit horizonal alignment auf stretch stelle klappt es leider nicht. Aktuell nutze ich ein Grid. Da ist es dann einfach überlagert..
-
Gehöre zum Inventar
- 28.05.2014, 06:32
- #9
Überlagert? Kannst du einfach mal den XAML Code von deinem ItemTemplate posten? Dann spiel ich mich direkt mit dem.
-
Mich gibt's schon länger
- 28.05.2014, 09:34
- #10
Ich habe die Änderungen hier bereits wieder Rückgängig gemacht, aber mein Code hier sieht so aus:
Code:<UserControl x:Class="MoneyTracker.UserControls.AccountListUserControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <UserControl.Resources> <DataTemplate x:Key="AccountTemplate"> <StackPanel Margin="0,0,0,12" HorizontalAlignment="Stretch" MinWidth="300" Holding="AccountList_Holding"> <FlyoutBase.AttachedFlyout> <MenuFlyout> <MenuFlyoutItem x:Uid="Delete" Text="Delete" Click="Delete_OnClick" /> <MenuFlyoutItem x:Uid="Edit" Text="Edit" Click="Edit_OnClick" /> </MenuFlyout> </FlyoutBase.AttachedFlyout> <Grid HorizontalAlignment="Stretch"> <TextBlock Style="{StaticResource MenuItemText}" Text="{Binding Name}" /> <TextBlock Style="{StaticResource MenuItemText}" Text="{Binding CurrentBalance}" HorizontalAlignment="Right" TextAlignment="Right" /> </Grid> <TextBlock Style="{StaticResource MenuItemSmallText}" Text="{Binding Iban}" /> </StackPanel> </DataTemplate> </UserControl.Resources> <StackPanel> <ListView Name="AccountList" ItemsSource="{Binding AllAccounts}" ItemTemplate="{StaticResource AccountTemplate}" HorizontalAlignment="Stretch" SelectionChanged="AccountList_OnSelectionChanged" /> </StackPanel> </UserControl>
Was mit gerade vorher noch in den Sinn gekommen ist: Muss ich vielleicht das UserControl auf Stretch setzten?
Gruss
NPadrutt
-
Gehöre zum Inventar
- 28.05.2014, 09:48
- #11
Im Grid fehlen die Columndefinitions. Und die enthaltenen TextBlock Elemente sind dann auch keiner Column zugeordnet. Daher ist es dann auch so dass sie bei Stretch übereinander liegen.
Schau dir mal an wie das hier in dem Artikel definiert ist - da sieht mans recht schön: http://msdn.microsoft.com/en-us/libr.../hh465337.aspx
-
- 28.05.2014, 10:36
- #12
Hab den Beitrag jetzt nur überflogen. Willst du denn Content immer über die gesamte breite stretchen, wenn ja dann müsste das hier helfen
Mit der kostenlosen PocketPC.ch App von meinem RM-821_eu_euro2_248 aus geschrieben.
---------- Hinzugefügt um 11:36 ---------- Vorheriger Beitrag war um 11:25 ----------
Du musst natürlich noch listbox durch Listview und listboxitem durch Listviewitem ersetzen
Mit der kostenlosen PocketPC.ch App von meinem RM-821_eu_euro2_248 aus geschrieben.
-
Mich gibt's schon länger
- 29.05.2014, 19:42
- #13
Mit den Grid Columns hat s leider nicht geklappt (oder ich habs zumindest nicht geschafft
). Die Überlagerung war zwar weg, aber die Ausrichtung leider immernoch direkt hintereinander.
Jedoch hats mit Akunz Idee geklappt:
Code:<ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> </Style> </ListView.ItemContainerStyle> </ListView>
Ähnliche Themen
-
panorama control dynamisch Seiten hinzufügen mit DataContext binding
Von glurak15 im Forum Windows Phone 8 EntwicklungAntworten: 4Letzter Beitrag: 16.04.2013, 12:35 -
Displayschutz für iPaq mit Expansion Pack
Von Draven im Forum PlaudereckeAntworten: 15Letzter Beitrag: 18.02.2003, 06:51 -
GPRS Einstellungen mit iPAQ3970 und GSM/GPRS Expansion Pack
Von dan71 im Forum PlaudereckeAntworten: 26Letzter Beitrag: 25.12.2002, 17:16 -
gprs Verbindung mit pocket pc phone edition
Von hpschoch im Forum PlaudereckeAntworten: 4Letzter Beitrag: 16.11.2002, 11:24 -
Erfahrungen mit Sunrise, Swisscom und Orange
Von Marco im Forum PlaudereckeAntworten: 3Letzter Beitrag: 01.09.2002, 09:50
Pixel 10 Serie mit Problemen:...