ListView mit dynamischer Breite ListView mit dynamischer Breite
Ergebnis 1 bis 13 von 13
  1. 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
    0
     

  2. 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.
    0
     

  3. 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?
    0
     

  4. 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).
    1
     

  5. 27.05.2014, 13:24
    #5
    Ah, alles klar. Also am Control, sprich meinem UserControl oder der entsprechenden Liste / Grid / Textbox?
    0
     

  6. 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.
    0
     

  7. 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.
    0
     

  8. 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..
    0
     

  9. 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.
    0
     

  10. 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>
    Aktuell ist noch ein MinWidth =300 drin.
    Was mit gerade vorher noch in den Sinn gekommen ist: Muss ich vielleicht das UserControl auf Stretch setzten?

    Gruss
    NPadrutt
    0
     

  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
    1
     

  12. 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.
    1
     

  13. 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>
    Danke euch beiden =)
    0
     

Ähnliche Themen

  1. panorama control dynamisch Seiten hinzufügen mit DataContext binding
    Von glurak15 im Forum Windows Phone 8 Entwicklung
    Antworten: 4
    Letzter Beitrag: 16.04.2013, 12:35
  2. Displayschutz für iPaq mit Expansion Pack
    Von Draven im Forum Plauderecke
    Antworten: 15
    Letzter Beitrag: 18.02.2003, 06:51
  3. Antworten: 26
    Letzter Beitrag: 25.12.2002, 17:16
  4. gprs Verbindung mit pocket pc phone edition
    Von hpschoch im Forum Plauderecke
    Antworten: 4
    Letzter Beitrag: 16.11.2002, 11:24
  5. Erfahrungen mit Sunrise, Swisscom und Orange
    Von Marco im Forum Plauderecke
    Antworten: 3
    Letzter Beitrag: 01.09.2002, 09:50

Besucher haben diese Seite mit folgenden Suchbegriffen gefunden:

windows phone listview dynamisch

grid listbox dynamische breite