Hallo Ihr Lieben,
unter dem Thread : CountryChooser(per flag) - WPF und verwandte Technologien - VB-Paradise 2.0 — Die große Visual–Basic– und .NET–Community (vb-paradise.de) habe ich eine Menge Hilfe bekommen, und ansich funktioniert nun alles wie gewünscht. Dank @ErfinderDesRades ist der Code nun deutlich kürzer und übersichtlicher, und ich habe dabei auch das ein oder andere gelernt.
Jetzt jedoch geht es mir darum wie man ein Usercontrol anständig designt, natürlich findet man, dann Hinweise auf Styles, oder gar Templates, jedoch tun sich mir hierbei folgende Gedanken und Probleme auf:
Wo kann man denn z.B. fertige Templates/Styles herbekommen, so das man mal sieht wie z.B. ein Anständiger HoverEffect umgesetzt wird ? Ich mein klar, man könnte auch einfach ein einzelnes Element als Bild laden, und beim MouseOver ein anderes Anzeigen, aber ich denke mal das die WPF noch tonnen an anderen Möglichkeiten bietet, die mir einfach nicht bekannt sind, kein Plan, ich nehme mal an ein GlowEffect oder dergleichen. Ich würde den CountryChooser einfach sehr gerne richtig anständig Designen, das Ausgewählte Item sollte in irgendeiner Art hervorgehoben werden, beim MouseOver hätte ich auch sehr gerne einen Effect, aber mir fehlen hierbei sowohl die Ideen, als auch die richtigen Quellen um nachzulesen, welche Möglichkeiten es ansich gibt, bei Tutorials wird meist nur ganz simples Zeug getrieben, wie z.B. TextFarbe und Größe, so komme ich jedoch nicht dahinter welche Möglichkeiten es sonst noch alles gibt.
Des Weiteren bin ich mir unsicher, ob der gewählte Ansatz, mit einer Listbox und einem DataTemplate der Richtige ist, oder ob es hier eine sinnvollere Lösung gibt, denn so z.B. kam ich bisher nicht dahinter, wie ich ein selectiertes Item in der Listbox hervorheben kann.
Das eigentliche UserControl:
Spoiler anzeigen
Das SingleItemUserControl:
Spoiler anzeigen
Was ich mich z.B. auch Frage ist, wieso das "Image" nach oben und nach unten, immer diesen unnötigen leeren Platz aufweist, unabhängig davon welche Fillmethode ich verwende oder was ich auch versucht habe, das Image scheint immer Quadratisch zu sein/bleiben, statt nur die notwendige Höhe zu verwenden, versucht habe ich hierbei auch, alles in eine ViewBox zu packen, ein Grid, und ein Stackpanel, der unnötige Platz bleibt immer erhalten.
Auch bin ich noch nicht dahinter gekommen, wie ich eben das in der Listbox selectierte Item anders hervorheben kann, besonders auch dann, wenn das Control gerade garnicht den Focus hat. Da scheint es Momentan nur leicht grau hervorgehoben zu sein.
Ihr seht sicher, dass ich momentan nicht mehr weiter weis, evtl. kann mir jemand Vorschläge geben, wie ich das Anständig hinbekommen könnte?
Vielen Lieben Dank schonmal
AsusDK
unter dem Thread : CountryChooser(per flag) - WPF und verwandte Technologien - VB-Paradise 2.0 — Die große Visual–Basic– und .NET–Community (vb-paradise.de) habe ich eine Menge Hilfe bekommen, und ansich funktioniert nun alles wie gewünscht. Dank @ErfinderDesRades ist der Code nun deutlich kürzer und übersichtlicher, und ich habe dabei auch das ein oder andere gelernt.
Jetzt jedoch geht es mir darum wie man ein Usercontrol anständig designt, natürlich findet man, dann Hinweise auf Styles, oder gar Templates, jedoch tun sich mir hierbei folgende Gedanken und Probleme auf:
Wo kann man denn z.B. fertige Templates/Styles herbekommen, so das man mal sieht wie z.B. ein Anständiger HoverEffect umgesetzt wird ? Ich mein klar, man könnte auch einfach ein einzelnes Element als Bild laden, und beim MouseOver ein anderes Anzeigen, aber ich denke mal das die WPF noch tonnen an anderen Möglichkeiten bietet, die mir einfach nicht bekannt sind, kein Plan, ich nehme mal an ein GlowEffect oder dergleichen. Ich würde den CountryChooser einfach sehr gerne richtig anständig Designen, das Ausgewählte Item sollte in irgendeiner Art hervorgehoben werden, beim MouseOver hätte ich auch sehr gerne einen Effect, aber mir fehlen hierbei sowohl die Ideen, als auch die richtigen Quellen um nachzulesen, welche Möglichkeiten es ansich gibt, bei Tutorials wird meist nur ganz simples Zeug getrieben, wie z.B. TextFarbe und Größe, so komme ich jedoch nicht dahinter welche Möglichkeiten es sonst noch alles gibt.
Des Weiteren bin ich mir unsicher, ob der gewählte Ansatz, mit einer Listbox und einem DataTemplate der Richtige ist, oder ob es hier eine sinnvollere Lösung gibt, denn so z.B. kam ich bisher nicht dahinter, wie ich ein selectiertes Item in der Listbox hervorheben kann.
Das eigentliche UserControl:
XML-Quellcode
- <UserControl x:Class="CountryFlagChooser"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:local="clr-namespace:Advanced_Invoice_Helper"
- mc:Ignorable="d"
- VisualTextRenderingMode="ClearType"
- RenderOptions.BitmapScalingMode="Fant"
- Background="Transparent"
- d:DataContext="{Binding AvailableCountries, Source={x:Static local:MainViewModel.Instance}}"
- >
- <UserControl.Resources>
- <DataTemplate DataType="{x:Type local:CountryViewModel}">
- <local:CountrySingleView/>
- </DataTemplate>
- </UserControl.Resources>
- <Viewbox Stretch="Fill">
- <ListBox ItemsSource="{Binding }"
- Background="Transparent" IsSynchronizedWithCurrentItem="True">
- <ListBox.ItemsPanel>
- <ItemsPanelTemplate>
- <StackPanel Orientation="Horizontal"/>
- </ItemsPanelTemplate>
- </ListBox.ItemsPanel>
- </ListBox>
- </Viewbox>
- </UserControl>
Das SingleItemUserControl:
XML-Quellcode
- <UserControl x:Class="CountrySingleView"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:local="clr-namespace:Advanced_Invoice_Helper"
- mc:Ignorable="d"
- d:DataContext="{Binding Path= AvailableCountries/, Source={x:Static local:MainViewModel.Instance}}"
- Height="Auto"
- Width="Auto">
- <Image Grid.Row="0"
- RenderOptions.BitmapScalingMode="Fant"
- Stretch="UniformToFill"
- Source="{Binding CountryFlagImageUri}"
- ToolTip="{Binding CountryName}"
- Margin="25,0">
- <Image.RenderTransform>
- <ScaleTransform CenterX="0.5" CenterY="0.5"/>
- </Image.RenderTransform>
- <Image.Style>
- <Style TargetType="{x:Type Image}">
- <Style.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Trigger.EnterActions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimation Storyboard.TargetProperty="(Image.RenderTransform).(ScaleTransform.ScaleY)"
- From="1"
- To="0.50"
- Duration="0:0:0.3"
- FillBehavior="Stop"/>
- </Storyboard>
- </BeginStoryboard>
- </Trigger.EnterActions>
- </Trigger>
- </Style.Triggers>
- </Style>
- </Image.Style>
- </Image>
- </UserControl>
Was ich mich z.B. auch Frage ist, wieso das "Image" nach oben und nach unten, immer diesen unnötigen leeren Platz aufweist, unabhängig davon welche Fillmethode ich verwende oder was ich auch versucht habe, das Image scheint immer Quadratisch zu sein/bleiben, statt nur die notwendige Höhe zu verwenden, versucht habe ich hierbei auch, alles in eine ViewBox zu packen, ein Grid, und ein Stackpanel, der unnötige Platz bleibt immer erhalten.
Auch bin ich noch nicht dahinter gekommen, wie ich eben das in der Listbox selectierte Item anders hervorheben kann, besonders auch dann, wenn das Control gerade garnicht den Focus hat. Da scheint es Momentan nur leicht grau hervorgehoben zu sein.
Ihr seht sicher, dass ich momentan nicht mehr weiter weis, evtl. kann mir jemand Vorschläge geben, wie ich das Anständig hinbekommen könnte?
Vielen Lieben Dank schonmal
AsusDK
If Energy = Low Then
Drink(aHugeCoffee)
Else
Drink(aHugeCoffeeToo)
End If
Drink(aHugeCoffee)
Else
Drink(aHugeCoffeeToo)
End If