Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von .tim
Thema: ResourceDictionaries verschachteln
Am im Forum: GUI: WPF und XAML

Ok meine Architektur sieht folgendermassen aus. Ich habe eine Windows.Form Anwendung und eine DLL mit meinen Klassen.

Da ich aber die WPF Techniken nutzen möchte, habe ich eine 3tes Projekt erstellt, in dem die WPF Controls enthalten sind.

Das Windows Form hat bisher immer UserControls in dem Form ausgetauscht. Damit ich nun WPF Controls einbinden kann, enthalten die UserControls nur noch die Logik und über ein ElementHost wird das WPF Control dargestellt.

Ich sehe es theoretisch genauso, dass die WPF Controls default-Aussehen haben.

Nur wie kann ich über meine Anwendung definieren wie die Styles von den Controls sind. Das Problem ist, dass auf dem WPF Control verschiedene Controls vorhanden sein können, die auch wiederrum WPF Controls beinhalten usw.

Wie kann sowas sauber realisiert werden?

EDIT:
Ok nehmen wir an ich mappe die Styles von den Untercontrols auf dem WPF Controls auf public Properties. Dann hätte ich noch immer das Problem, das ich von einer Windows.Form Anwendung auf kein ResourceDictionary zugreifen kann. Erstellen kann ich dies ja leider dort auch nicht.

Thema: Anchor in WPF
Am im Forum: GUI: WPF und XAML

Diese, ich nenne sie LayoutManager (Grid, Canvas) haben ein unterschiedliches Verhalten. Sie sind für Unterschiedliche Zwecke gedacht.

Um ein ähnliches Verhalten wie Anchor zu nutzen, empfehle ich dir ein Grid. Ein Canvas ist eher für eine absolute Positionierung gedacht.

Leider ist WPF durch einen enormen Funktionszuwachs auch komplzierter geworden. So ist es aber immer. Umso mehr Möglichkeiten man haben möchte, umso schwerer ist es somit auch, das Beste für sich zu finden.

Thema: ImageSource bei Klick ändern
Am im Forum: GUI: WPF und XAML

<Image.Triggers>HIER</Image.Triggers>

Triggers kommt vom FrameworkElement.

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Ich habe zwar nicht verstanden wieso das so ist, aber ich nehme es einfach mal so hin.

Vielen Dank für deine Hilfe.

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Vielen Dank.

Zitat von nitronic
... Wenn du nun die ItemsSource setzt, dann befindet sich in der Items-Auflistung eine Collection deiner Objekte.
Ok, also kann ich mir das folgendermassen vorstellen. Mein ListViewItem hat ein Child, welches mein Item aus dem Source entspricht. In meinem ControlTemplate bin ich auf der Ebene des Childs und kann deshalb mit Binding auf die Eigenschaften von meinem Typ zugreifen. Um nun wieder zu meinem Parent (dem ListViewItem) zu gelangen, muss ich TemplateBinding nutzen?

Habe mir das so hergeleitet, da Template Binding {Binding RelativeSource={RelativeSource TemplatedParent}} laut MSDN entspricht.
Zitat von nitronic
Erstelle dir eine Methode/Eigenschaft, welche dir den Gesamtpfad zurückgibt und diesen bindest du dann einfach.

Schade, dass soetwas nur so umständlich ist. Eine Möglichkeit wie Key="Mein Statischer Wert {Binding ...}" wäre viel praktischer
Zitat von nitronic
Dein UserControl ist ja auch nur ein Element. Probiere es mit einem Binding unter Angabe des ElementName und verweise auf deine entsprechende Property. Achte darauf, dass es sich um eine DependencyProperty handelt. Das sollte funktionieren, ohne es jetzt getestet zu haben.

In dem Fall dürfte ich das Template aber nicht in ein ResourceDictionary auslagern, da zu dem Zeitpunkt der ElementName noch garnicht exisiert, bzw. nicht bekannt ist, dass er jemals existieren wird. Somit kann ich wieder nicht wirklich Design zentral verwalten.

Eine Skinfähigkeit unter WPF durchzusetzen, ist meiner Meinung nach nicht einfacher als bei Windows Forms, leider

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Vielen Dank. Genau soetwas hatte ich gesucht.

Falls du die Zeit findest, wäre es echt toll, wenn du noch meinen vorherigen Beitrag beantworten könntest.

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Nocheinmal vielen Dank.

Zitat von nitronic
Und zwar: Durch das ControlTemplate legst du ja fest, für welchen Typ es zuständig ist bzw. in welchem Typ es verwendet wird. Dieser Typ IST ein ListViewItem. Dieses bietet Eigenschaften an, die verwendet werden können (IsSelected zum Beispiel).

Nun fügst du eigene Objekte der Items-Auflistung hinzu (DataSource, wie auch immer). Diese werden für das DataBinding verwendet, d.h. er findet so auch den angegebenen Pfad, weil pro ListViewItem auf das Objekt geachtet wird, das darin enthalten ist.

Das heisst also, ich kann sowohl "{Binding Path=EigenschaftMeinesTyp}" und "{Binding Path=EigenschaftListView}" nutzen?

Du hast geschrieben "Dieser Typ IST ein ListViewItem". Das ControlTemplate bezieht sich doch genau auf ein Item und das kann doch nur von einem Typ sein. Ich verstehe die Logik irgendwie nicht. Befinde ich mich in einem ListViewItem oder in einem Item von meinem Typ? Ich stelle mir das so vor, dass ich mich in dem Design Bereich einer foreach Schleife befinde. Ich hoffe du verstehst was ich meine.
Zitat von nitronic
Du kannst das über einen ObjectDataProvider in deinen Ressourcen machen und da das Ergebnis einer Methode etc. binden.

Ok danke, aber in dem Fall kann ich nun nur an den Pfad binden. Ich möchte aber sozusagen den Sourcestring aus 2 Bindungen zusammensetzen. D.h. sowas wie Pfad (Bindung1) + Dateiname (Bindung2).
Zitat von nitronic
Ich versuche die Zeit zu finden, dir da ein Beispiel zu erstellen.

Das wäre super.

Eine Kleinigkeit ist mir auch noch unklar. Wenn ich mich in dem ControlTemplate befinde, habe ich nur einen Bezug auf ein ListViewItem. Dieses ControlTemplate nutze ich in einem UserControl. Was ist aber wenn ich aus dem ControlTemplate auf Eigenschaften des UserControls zugreifen möchte. Ich habe da folgendes Problem. Mein UserControl hat eine Eigenschaft DefaultImageSource. Wenn kein ImagePath in meinen Items vorhanden ist, soll dieser DefaultImageSource genutzt werden. Meine Idee in der Sache wäre ein Trigger, der ja (wahrscheinlich) auf die Eigenschaften des Items zugreifen kann. Aber wie sag ich dem Trigger dann, dass er den ImageSource Pfad in dem Fall auf DefaultImageSource setzen soll?

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Ersteinmal vielen Dank, das du dir das angeschaut hast.

EDIT:
Die Items gehen über den Source in das ListView als BindingList<>

1 u. 2) So ganz ist es mir nicht. Ich greife doch zB im Trigger auf Eigenschaften von ListViewItem (IsSelected) zu und binde auf der anderen Seite an Member von meinem Typ (ElementContent).

3) Ich habe z.B. eine statische Eigenschaft in einem Singleton Objekt. In meinem Fall habe ich z. B. einen Pfad. Nun möchte ich gerne den ImageSource setzen, Pfad (nicht im Item vorhanden) + Dateiname. Wobei der Dateiname in dem Item vorhanden ist.

4) D.h. um z.B. im ControlTemplate die Breite eines Image(Containers) per Trigger zu ändern, müsste ich diese Eigenschaft an eine (Dummy) Eigenschaft des Items binden?
Nun sind wir aber bei Problem 1 u. 2. Im Trigger kann ich doch nur auf die Eigenschaften von ListViewItem und nicht meinem Typ zugreifen.

EDIT: Ich möchte z. B. bei nem IsSelected eine Animation starten oder so.

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Das ist der aktuelle Stand. Dabei geht es auch mehr um das Verständis der Sache.
Das komplette Projekt würde den Umfang sprengen.

Bitte les dir vorallem meinen 2ten Beitrag und die darin enthaltenen vorhanden Fragen durch. Dann verstehst du was ich grundlegend nicht verstehe.

Thema: ResourceDictionaries verschachteln
Am im Forum: GUI: WPF und XAML

Eine App.xaml habe ich ja leider nicht (DLL) und bringt bei den Controls auch nichts.
Bei den Styles werden selbst die "primitiven" Controls wie z.B. Button oder Labels angesprochen.

Wenn man hört wie toll, WPF ist, wird oft gesagt:

"Man kann Styles definieren und dafür sorgen, dass alles gleich aussieht"

So einfach ist es aber nicht, dies ist nur die halbe Wahrheit. Wieso gibt es dafür keine "globale" Lösung für eine komplette DLL.

Wäre es nicht schön, für ein Namespace ressourcen hinterlegen zu können
Wenn dazu noch die Funktionaliät von partiellen XAML Files existieren würde, wären meine Probleme gelöst.

Und genau zu diesem Zeitpunkt, wäre die Aussage "Man kann Styles definieren und dafür sorgen, dass alles gleich aussieht" für mich auch wahr.

Wieso kann man Styles nicht genauso wie Klassen betrachten. Somit könnte man die Styles ohne Probleme einbinden und auch viel kompfortabler davon ableiten.

Für mich ist die Sache ein unnötiger riesen Verwaltungsaufwand und ist auch für eine Erweiterbarkeit nicht sonderlich hilfreich.

Thema: Vorteile von WPF?
Am im Forum: GUI: WPF und XAML

Ich sitze seit einem Monat an paar Sachen die für mich Grundlagen sind und habe noch nichts gefunden, dass mir bei der Lösung helfen könnte.
Wenn du Lust und Zeit hast, wäre es super, wenn du einen Blick auf folgende Thread werfen könntest:
ListView und WrapPanel

Vielleicht verstehe ich auch etwas falsch und es ist einfacher als ich dachte. Aber ich frage mich halt, wieso etwas so Grundlegendes, nirgendwo angesprochen wird.

Thema: Vorteile von WPF?
Am im Forum: GUI: WPF und XAML

Es ist nicht möglich etwas bestimmtes zu machen. Weil nirgendwo zu finden ist, wie es geht

Ich will keinesfalls behaupten, dass es nicht möglich ist, weil der Umfang fehlt.

Thema: ResourceDictionaries verschachteln
Am im Forum: GUI: WPF und XAML

Genau so habe ich es auch umgesetzt. Nur leider kommt es da, zu dem oben beschriebenen Fehler.

Ich beschreibe das Problem noch etwas anders.

Wenn ich alle Basisstyles inkl. Spezialisierungen in eine Datei schreibe, brauche ich nur diese Datei "inkludieren".

Sobald ich diese Dateien auslagere, muss die Datei mit den spezialisierten Styles/Templates die Datei in Richtung Basisklasse inkludieren.

Das bedeutet, ich kann nur eine "extrem" Spezialisierung inkludieren. Ansonsten würden die Basisklassen mehrfach durch die spezialisierenden Dateien inkludiert.

Auch wenn es funktioniert, wäre es keine gute Lösung.

Thema: Vorteile von WPF?
Am im Forum: GUI: WPF und XAML

Ich sehe es schon als Problem.

Dadurch ist es erst garnicht möglich etwas bestimmtes zu entwickeln. Wenn dies spezielle Sachen wären, würde ich es genauso sehen. Teilweise handelt es sich dabei aber um Grundlagen.

Thema: ResourceDictionaries verschachteln
Am im Forum: GUI: WPF und XAML

Bei meinem Projekt wird es sehr viele Templates und Styles geben.
Die Styles basieren teilweise auf andere Styles. D.h. es gibt ein Basis Style und spezialisierte Styles.
Deshalb würde ich gerne mehrere ResourceDictionary nutzen.
Dazu kommt, dass es sich dabei um eine DLL mit UserControls handelt.

Damit die spezialisierten Styles das Basis Style kennen, muss ich in dieser Datei die Basis Style Datei als Merged Dictionary angeben.

Dieses vorgehen, finde ich nicht so der Hit. Ich hätte gerne ein Dictionary das die Basis Style Files "inkludieren" und diese die Spezialisierungen.

Nun müsste ich zwar noch immer in jedem UserControl noch ein Dictionary inkludieren, aber das wäre noch ok.

Selbst wenn ich alle Spezialisierungen inkludiere, kommt es zu dem Problem.
Der "Designer" toleriert es zwar, aber zur Laufzeit kommt ein Fehler der aussagt, dass das Basis Style nicht gefunden wurde.

Wie habt ihr bereits sowas realisiert, was sind eure Ideen oder gibt es dafür ein bekannte Strategie wie man damit gut umgehen kann?

Thema: Vorteile von WPF?
Am im Forum: GUI: WPF und XAML

Ich finde WPF auch sehr interessant.

Das Prinzip, Controls in Controls nun wirklich zu verschachteln war unter Windows.Forms immer sehr schlecht möglich.

Endlich gibt es verschiedene Layout Manager. Dieser Punkt war unter Java bisher ein riesen Vorteil.

Das schlimmste ist aber, dass die Doku nicht wirklich komplett ist. Ich habe einpaar Problem, dazu existiert auch ein Thread: ListView und WrapPanel

Diese Probleme konnte ich noch immer nicht lösen. Ich frage mich, wieso die Doku und sonstige Artikel oder Bücher darauf keine Antwort geben können.

Vielleicht ist meine Denkweise noch eine andere. Für mich ist aber genau dieser Faktor ausschlaggebend.

Mir fehlt da leider etwas der Überblick.

Thema: eigenes WPF-Control in anderes Control einfügen (VS2008)
Am im Forum: GUI: WPF und XAML

Du _musst_ einen Namespace definieren. Es handelt sich zwar um das gleiche Assembly und ggf. Namespace aber in WPF ist das etwas anders.

Wenn du dort keinen Prefix bzw. Namespace angibst, wird der std. Namespace genutzt und das ist: http://schemas.microsoft.com/winfx/2006/xaml/presentation

Um dir weiter helfen zu können, müsstest du nochmal genau beschreiben, wann und welcher Fehler bei dir erscheint.

Thema: "Template-Klasse" um template in mehreren Projekten zu verwenden?
Am im Forum: GUI: WPF und XAML

Bei mir stehen die Resource XAML auf Page.

Der Fehler kommt bei dir, obwohl der "Buildvorgang" bei dir von GlassStyle.xaml auf Page steht?

Thema: ListViewItem ist stets blau
Am im Forum: GUI: WPF und XAML

An dem Problem habe ich auch sehr lange gearbeitet.
In dem folgenden XAML Ausschnitt sind 3 Trigger aufgeführt. Ich denke, dass wird dein Problem lösen.

 <ControlTemplate TargetType="{x:Type ListViewItem}">
                                <Border Margin="10" BorderBrush="White" BorderThickness="5" CornerRadius="10" Padding="10" Background="{TemplateBinding Background}">
                                    <ContentControl HorizontalContentAlignment="Stretch" HorizontalAlignment="Center">
                                        <StackPanel>
                                            <Image Source="{Binding Path=ImgPath}" Width="150" Height="100" Stretch="Fill" Margin="5"/>
                                            <TextBlock
                                                TextWrapping="Wrap"
                                                Width="150"
                                                Text="{Binding Path=ElementContent}"
                                                Foreground="{TemplateBinding Foreground}"
                                                Background="{TemplateBinding Background}">
                                            </TextBlock>
                                        </StackPanel>
                                    </ContentControl>
                                </Border>

                                <ControlTemplate.Triggers>

                                    <Trigger Property="IsSelected" Value="true">
                                        <!--Wenn das Item selected ist und aktiv-->
                                        <Setter Property="Background" Value="Black"/>
                                        <Setter Property="Foreground" Value="Yellow"/>
                                    </Trigger>
                                    <Trigger Property="IsSelected" Value="false">
                                        <!--Wenn das Item nicht selected ist-->
                                        <Setter Property="Background" Value="Yellow"/>
                                        <Setter Property="Foreground" Value="Black"/>
                                    </Trigger>
                                    <MultiTrigger>
                                        <MultiTrigger.Conditions>
                                            <Condition Property="IsSelected" Value="true"/>
                                            <Condition Property="Selector.IsSelectionActive" Value="false"/>
                                        </MultiTrigger.Conditions>
                                        <!--Wenn das Item selected ist und nicht aktiv-->
                                        <Setter Property="Background" Value="Black"/>
                                        <Setter Property="Foreground" Value="Orange"/>
                                    </MultiTrigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate> 

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Da nun etwas Zeit vergangen ist und ich leider trotz intensivem suchen leider die Fragen noch immer offen sind, wollte ich fragen, ob zwischenzeitlich jemand eine Idee auf meine Fragen/Probleme hat.

Für jede Idee, wo ich suchen könnte, wäre ich sehr dankbar.

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Leider bestehen die Fragen noch immer.

Ich habe weiterhin mehr probiert, aber komme noch weiterhin auf die selben Ergebnisse.

Es wäre super, wenn mir jemand einen Tipp geben könnte. Ein Artikel der die Probleme/Fragen lösen könnte, wäre auch sehr hilfreich.

Vielen Dank
.tim

Thema: Fehler im .NET Framework?
Am im Forum: GUI: WPF und XAML

Hallo, ich denke ich habe einen Fehler gefunden.

Mich würde interessieren ob dieser schon in einem Patch o.ä. behoben ist, bzw. ob dieser bei euch auch auftritt.

Es geht um System.Windows.Controls.ListView.

Ich habe als KeyboardNavigation.DirectionalNavigation Cycle eingestellt.
Wichtig ist für den Test, dass in dem ListView mindestens doppelt soviele Items vorhanden sind als Platz darin ist. D.h. es muss ein Scrollbalken erscheinen.

Wenn nun der Fokus in dem ListView ist und man mit der Cursor Nach-Unten Taste navigiert, funktioniert alles wunderbar.
Die Items werden bis zum Letzten selektiert und die Scrollbar läuft sauber mit. Sobald kein Item mehr vorhanden ist, springt die Selektion auf das erste Element und die Scrollbar springt auch zum Anfang. Ab diesem Moment funktioniert auch die Navigation über die Nach-Oben Taste sauber.

Wenn man nun die Anwendung neustartet und mit der Cursortaste Nach-Oben den oberen Rand erreicht, springt dieser nicht zum letzten Element, sondern zum letzten Element in der Ansicht.

Zuerst habe ich mich gefragt ob mit dem "Kreislauf - Cycle" die aktuelle Ansicht gemeint ist. Da ich dies aber für unsinniger halte, die anderen "unsichtbaren" Elemente zu ignorieren und dieses Verhalten ja auch bei der Nach-unten Taste entstehen müsste, bin ich mir sicher, dass dies nicht so gewollt ist.

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Zitat von Virussoul
Im Prinzip ist es ganz einfach:
Mach einfach das komplette Border in den Trigger rein und änder die Imagebreite.

Wie meinst du das?
Wie kann ich aus dem Trigger den Border ansprechen?
Wie kann ich die anderen Elemente des ControlTemplates ändern?

Eine Idee zu Frage 1-3?

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Hat niemand eine Antwort auf meine ganzen Fragen?

Thema: Vererbung like WinForms
Am im Forum: GUI: WPF und XAML

Wie/Wann möchtest du XAML Datei bzw. Inhalt austauschen?

Schau dir mal die InitializeComponent Methode an. Da erkennst du, wie der XAML Code "eingelesen" wird.

Zuerst wird die eingebette Ressource (XAML Code) als System.Uri Objekt instanziiert und anschliessend per System.Windows.Application.LoadComponent geladen.

Vielleicht hilft dir das weiter.

Theoretisch ist zwar Logik und Designtrennung gedacht. Aber es muss ja zwischen diesen beiden Sachen ein Verbindung geben. D. h. in deinem XAML oder spätenstens im Code muss ja ein Bindung o. ä. stattfinden.

Somit enthält das XAML nicht nur reine Designkomponenten sondern auch teilweise die "Schnittstelleninformationen."

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Ich habe etwas ausprobiert, dass teilweise funktioniert.

Ich habe für das ListView ein ItemContainerStyle definiert. Dieses Style hat den TargetType ListViewItem und überschreibt das Template mit dem folgenden XAML Code. Es gibt 4 Probleme auf die mir keine oder keine gute Lösung einfällt.

1) Damit IsSelected von dem Trigger gefunden werden kann, muss der TargetType ListViewItem sein. Die Items sind aber von dem Typen myType. Nun könnte ich von ListViewItem ableiten. Dabei bekomme ich aber Probleme mit dem OR-Mapper. Dieser stört sich daran, das manche Member nicht als virtual gekennzeichnet sind. Theoretisch könnte ich mir die Arbeit machen, und die Member neu erstellen und auf die Basisfunktionalität mappen. Sprich "... new virtual ..."

2) Wie kann es sein, dass alles ordentlich dargestellt wird? Das ImgPath und ElementContent gefunden werden, kann ich mir damit erklären, dass ListViewItem als TargetType ignoriert wird und myType diese Eigenschaften enthält. Wie ist dies aber mit IsSelected und Selector.IsSelectionActive, diese Eigenschaften sind nicht in myType vorhanden und können trotzdem fehlerfrei genutzt werden (Die GUI funktioniert, wie sie soll).

3) TextBlock.Text ist an ElementContent gebunden. Wie kann ich einen Prefix (statischer Text und eine Eigenschaft eines Singleton-Objekts) hinzufügen?

4) Wie kann ich das ControlTemplate manipulieren. D.h. wie kann ich z.B. durch einen Trigger bei IsSelected die Breite des Bildes ändern.

<ControlTemplate TargetType="{x:Type ListViewItem}">
                                <Border Margin="10" BorderBrush="White" BorderThickness="5" CornerRadius="10" Padding="10" Background="{TemplateBinding Background}">
                                    <ContentControl HorizontalContentAlignment="Stretch" HorizontalAlignment="Center">
                                        <StackPanel>
                                            <Image Source="{Binding Path=ImgPath}" Width="150" Height="100" Stretch="Fill" Margin="5"/>
                                            <TextBlock 
                                                TextWrapping="Wrap" 
                                                Width="150" 
                                                Text="{Binding Path=ElementContent}" 
                                                Foreground="{TemplateBinding Foreground}"
                                                Background="{TemplateBinding Background}">
                                            </TextBlock>
                                        </StackPanel>
                                    </ContentControl>
                                </Border>
                                
                                <ControlTemplate.Triggers>
                                    
                                    <Trigger Property="IsSelected" Value="true">
                                        <!--Wenn das Item selected ist und aktiv-->
                                        <Setter Property="Background" Value="Black"/>
                                        <Setter Property="Foreground" Value="Yellow"/>
                                    </Trigger>
                                    <Trigger Property="IsSelected" Value="false">
                                        <!--Wenn das Item nicht selected ist-->
                                        <Setter Property="Background" Value="Yellow"/>
                                        <Setter Property="Foreground" Value="Black"/>
                                    </Trigger>
                                    <MultiTrigger>
                                        <MultiTrigger.Conditions>
                                            <Condition Property="IsSelected" Value="true"/>
                                            <Condition Property="Selector.IsSelectionActive" Value="false"/>
                                        </MultiTrigger.Conditions>
                                        <!--Wenn das Item selected ist und nicht aktiv-->
                                        <Setter Property="Background" Value="Black"/>
                                        <Setter Property="Foreground" Value="Orange"/>
                                    </MultiTrigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>

Es wäre super wenn ihr mir bei der einen oder anderen Fragen helfen könnt.

Vielen Dank.

Thema: ListView und WrapPanel
Am im Forum: GUI: WPF und XAML

Hallo ich nutze ein ListView in dem die Elemente in einem WrapPanel angezeigt werden soll.

Die Anzeige soll später ähnlich wie die bekannte "Mininaturansicht" im Windows Explorer aussehen.

In meinem Test, soll die Hintergrundfarbe schwarz und die Textfarbe weiss sein. Das selektierte Elemente soll die Hintergrundfarbe ändern. In meinem Test habe ich dies mit Grün, Rot oder Gelb versucht. Leider funktioniert dies nicht. Bei dem Selektieren wird dies "Windows" Blau. Sobald das ListView den Fokus verliert. Wird der Hintergrund weiss und die Schrift ist dadurch sogar nicht mehr lesbar.

In meinem Test habe ich 3 Varianten probiert, dass sich die Farbe ändert. Ohne Erfolg.
Was habe ich falsch gemacht?

Das ListView ist folgendermassen instanziert.

 <ListView DockPanel.Dock="Top"
                          Style="{StaticResource style_mytest}" 
                          Background="Black">
                </ListView>

Das Style enthält einen eigene Typ. Das Bindung funktioniert wunderbar. Deshalb bitte die Angabe "myType" ignorieren.
<Style x:Key="style_mytest" TargetType="{x:Type ListView}">
        <Style.Triggers>
            <Trigger Property="IsFocused" Value="true">
                <Setter Property="Background" Value="Green" />
            </Trigger>
        </Style.Triggers>
        <Setter Property="FocusVisualStyle">
            <Setter.Value>
                <Style>
                    <Setter Property="Control.Background" Value="Yellow"></Setter>
                </Style>
            </Setter.Value>
        </Setter>
        <Setter Property="ItemTemplate">
            <Setter.Value>
                <DataTemplate DataType="{x:Type myType}">
                    <DataTemplate.Triggers>
                        <Trigger Property="IsFocused" Value="true">
                            <Setter Property="Control.Background" Value="Red" />
                        </Trigger>
                    </DataTemplate.Triggers>
                        <TextBlock TextWrapping="Wrap" Width="150" Text="{Binding Path=ElementContent}" Foreground="White"/>
                </DataTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <WrapPanel Background="Black">
                    </WrapPanel>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <ItemsPresenter />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Es wäre super, wenn mir jemand helfen könnte, da ich langsam am verzweifeln bin.

Thema: MouseMove Event nur teilweise ausgelöst
Am im Forum: GUI: WPF und XAML

Ok Problem erkannt und gelöst.

Das UserControl hat keinen Hintergrund.

Dadurch scheint es auch für das MouseMove unsichtbar zu sein und nur die Buttons etc. lösen das Event aus.

Ich habe dem UserControl eine Hintergrund"farbe" zugewiesen und nun funktioniert es wunderbar.

Focusable und Focus Scope ist auch nicht relevant.

Thema: Content zuweisen
Am im Forum: GUI: WPF und XAML

Nun funktioniert es. Wird nun in die Controls Collection mitaufgenommen.

Thema: MouseMove Event nur teilweise ausgelöst
Am im Forum: GUI: WPF und XAML

Ich benötige ein MouseMove Event.
Die Anwendung ist immer im Vollbildmodus, deshalb braucht es nicht einmal Global zu sein.
Ich nutze Windows.Forms mit einem ElementHost in dem ein WPF UC (mit Buttons) gehostet ist.
Nun "überwache" ich das MouseMove Event von dem UC.
Leider wird das Event nur aus ausgelöst, wenn mit der Maus über einen der Buttons gefahren wird.
Die Eigenschaft Focusable habe ich sogar bei dem UC gesetzt. Kein Unterschied

Hat jemand eine Idee an was das liegen kann, oder was ich machen kann?

Vielen Dank
.tim