| 

.NET C# Java Javascript Exception

3
Hallo,

ich bin dabei eine Anwendungsmenü-Verwaltung zu schreiben. Damit kann ich Module eintragen und ausführen lassen, sobald sie fertig von mir erstellt/implementiert wurden.

Ein Feature ist das zuordnen eines Icons/Images zum leichteren wiederauffinden.

Ich programmiere mit VS2010/VB.NET und benutze MVVM in der Architektur.

Ich habe eine Resourcendatei in der alle für diese Anwendung erlaubten Images/Icons hinterlegt wurden. In der Datei ist noch eine Funktion drin, die mir die internen Pfadnamen der als Collection(of String) zurück gibt.

Der Benutzer soll nun in der Lage sein, dass er das Icon selbst änder kann. Daher dachte ich zunächst eine neue View zu erstelle.

<ItemsControl ItemsSource="{Binding ImageNames}" >
<ItemsControl.ItemTemplate>
<DataTemplate>

<StackPanel ToolTip="{Binding .}">
<Image Height="64" Width="64" Stretch="Fill"
Source="{Binding .,Converter={StaticResource ImageConverter}}" />
<TextBlock Text="{Binding .}" Width="64" TextWrapping="Wrap" />
</StackPanel>

</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel>
</WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>

Nun hab ich aber die Schwierikeit, dass ich bei der ItemsSource keine Eigenschaft alle SelectedItem oder so finde.

Daher habe ich google bemüht. Einige Lösungen benutzen da eine Listview. Da wird aber die Anzahl der "Spalten" vorgegeben. Da der Benutzer aber beim vergrößern der View mehr "Spalten" sehen soll, scheidet diese variante (wohl) für mich aus.

Außerdem fehlen mir (wie ich es früher bei WinForms hatte) die Scrollsbars.

Lange Rede - kutzer Sinn: Wo kann ich einen Artikel finden, der mir eine sinnvolle Icon/Imageauswahl ermöglicht?

Vielleicht hilft mir auch das richtige Suchwort - aber auf das bin ich noch nicht gekommen.

Danke im Vorraus
25.03.2013
MyKey0815 1,6k 2 9
2 Antworten
1
Nun hab ich aber die Schwierikeit, dass ich bei der ItemsSource keine Eigenschaft alle SelectedItem oder so finde.

Verstehe ich das richtig, dass Du alle selektierten Items abfragen möchtest, d.h. hat der User die Möglichkeit mehrere Items zu selektieren?
Wenn Du nur nach einem SelectedItem suchst, dann nimmst Du statt einem ItemsControl einen Selector. Dieser unterstützt die bekannte SelectedItem Property. Wenn Du Mehrfachauswahl unterstützen musst, könnte der MultiSelector weiterhelfen.

Das WrapPanel halte ich schon für eine gute Variante, wenn abh. von der Panelgröße die Images auf dem vorhandenen Platz verteilt werden sollen.
Scrollbars bekommst Du eigentlich um jedes Element drum, wenn Du es mit einem ScrollViewer umgibst.
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<!-- Content, der gescrollt werden soll -->
</ScrollViewer>


UPDATE:
Mit dem WrapPanel hast Du ja schon den richtigen Container gefunden. Um abh. von der Größe der View eine variable Anzhal Spalten zu bekommen, musst Du das horizontale Scrollen der ListView unterbinden.

<ListView ItemsSource="{Binding Images}" 
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel ItemWidth="32" ItemHeight="32" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>

<ListView.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" BorderBrush="Black">
<!-- Bild statt Border hier einfügen -->
<!--<Image />-->
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
25.03.2013
ffordermaier 8,4k 3 9
Danke für den Tipp mit dem Scrollbars. Das konnte ich sofort korrekt umsetzen.

Leider ist in deinem Link zwar die Beschreibung zu sehen - nur leider kein Beispiel für den Syntax bzw. wie ich das mit meinen Images/Icons umsetzen kann. Und bei google kommt zu hauf, wieder "listbox" usw.
MyKey0815 25.03.2013
Hab meine Antowrt aktualisiert, hilft Dir das weiter?
ffordermaier 27.03.2013
1
Nimm doch ein WrapPanel mit Buttons. Wenn Du mehrere Icons auswählen willst, nimmste nen Toogle Button. Bilder auf Button - fertig ;-)
Kannst Du alles fein per EventToCommand an VM binden.
25.03.2013
judgy 3,0k 1 1 8

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH