Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
C# Standardeffekt bei Buttons verhindern
- Ersteller UID0
- Erstellt am
taskmanager
Cadet 2nd Year
- Registriert
- Dez. 2006
- Beiträge
- 25
Ich würde vorschlagen, das default Control-Template zu überschreiben. Und zwar für den Button-State "MouseOver".
--> http://msdn.microsoft.com/en-us/library/ms753328.aspx
EDIT: Hier ist das ganze noch etwas detaillierter beschrieben: http://msdn.microsoft.com/en-us/library/cc189093(v=vs.95).aspx
--> http://msdn.microsoft.com/en-us/library/ms753328.aspx
EDIT: Hier ist das ganze noch etwas detaillierter beschrieben: http://msdn.microsoft.com/en-us/library/cc189093(v=vs.95).aspx
Zuletzt bearbeitet:
Tumbleweed
Captain
- Registriert
- März 2008
- Beiträge
- 3.598
Das heißt doch in C# nicht wirklich überladen oder? Überladen ist, wenn die gleiche Methode mehrere Parameterlisten hat. Überschreiben ist hier das Stichwort.
Nicht dass ich klugscheißen will, aber sonst googlet der TE nach dem falschen Stichwort.
Nicht dass ich klugscheißen will, aber sonst googlet der TE nach dem falschen Stichwort.
taskmanager
Cadet 2nd Year
- Registriert
- Dez. 2006
- Beiträge
- 25
Hier hat Microsoft einen Walkthrough publiziert. Zwar für Silverlight, aber das sollte in WPF analog funktionieren.
http://msdn.microsoft.com/en-us/library/cc903963(v=vs.95).aspx
http://msdn.microsoft.com/en-us/library/cc903963(v=vs.95).aspx
- Registriert
- Juli 2010
- Beiträge
- 1.050
Chriss000 schrieb:Also ich verstehe nur noch Bahnhof... Habe erst gestern mit WPF angefangen.
Im Anhang befindet sich das Projekt. Ich hoffe jemand könnte mir zum Verständnis, es an dem konkreten Beispiel aufzeigen.
So funktioniert das leider nicht Du musst schon ein wenig mehr Bereitschaft zeigen
Das Web ist voll von Tutorials über Templating und Styling von WPF Controls.
Du sagst, du hast erst gestern (vorgestern) mit WPF angefangen. Ich empfehle dir nicht einfach drauf los zu klicken, sondern dich erstmal ausreichend über WPF "warm zu lesen".
Zwar kannst du es genauso benutzen wie Windows Forms, wirst dann aber garantiert nicht das volle Potential ausnutzen (können).
WPF mag dir kompliziert erscheinen, aber irgendwann merkst du, wie mächtig es ist
Wenn ich mich recht entsinne, bist du noch Schüler. Frag an deiner Schule nach, ob ihr MSDNAA lizensiert habt. Falls ja, lad dir dort Expression Blend runter. Google selbst, was das ist. Ich kann dir nur sagen, dass Tool ist Gold wert.
Falls du keinen Zugriff über MSDNAA kriegen kannst, könntest du dein Glück noch über www.dreamspark.com versuchen, wobei ich nicht sicher bin, ob sich das Angebot nur an Studenten oder auch an Schüler richtet. Erfragen oder ausprobieren.
Wie auch immer, was du suchst nennt sich Visual Style. Für den stink normalen Button sieht das so aus:
Code:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero">
<Style x:Key="ButtonFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Resource dictionary entries should be defined here. -->
<LinearGradientBrush x:Key="ButtonNormalBackground" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#F3F3F3" Offset="0"/>
<GradientStop Color="#EBEBEB" Offset="0.5"/>
<GradientStop Color="#DDDDDD" Offset="0.5"/>
<GradientStop Color="#CDCDCD" Offset="1"/>
</LinearGradientBrush>
<SolidColorBrush x:Key="ButtonNormalBorder" Color="#FF707070"/>
<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
<Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/>
<Setter Property="Background" Value="{StaticResource ButtonNormalBackground}"/>
<Setter Property="BorderBrush" Value="{StaticResource ButtonNormalBorder}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Microsoft_Windows_Themes:ButtonChrome x:Name="Chrome" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderPressed="{TemplateBinding IsPressed}" RenderDefaulted="{TemplateBinding IsDefaulted}" SnapsToDevicePixels="true">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Microsoft_Windows_Themes:ButtonChrome>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="true">
<Setter Property="RenderDefaulted" TargetName="Chrome" Value="true"/>
</Trigger>
<Trigger Property="ToggleButton.IsChecked" Value="true">
<Setter Property="RenderPressed" TargetName="Chrome" Value="true"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="#ADADAD"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Die Styles kriegst du entweder über MSDN oder du extrahierst sie selbst (Google hilft hier weiter). Blend kann die ebenfalls extrahieren.
Das Dictionary kannst du entweder lokal über
Code:
<Window .....>
<Window.Resources>
<ResourceDictionary>.
...
</ResourceDictionary>
<Window.Resources>
Oder in der App.xaml applikationsweit einbinden.
Code:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pfad.zur.xaml.datei"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Anwenden tust du einen Style über das Property (Achtung) Style, z.B. so:
Code:
<Button Style="{DynamicResource ResourceKey}" />
Gruß
- Registriert
- Juli 2010
- Beiträge
- 1.050
Natürlich bin ich bereit zu lernen. Dafür frage ich ja. Nur die Tutorials, die ich bisher gefunden habe, halfen mir nicht wirklich weiter...
Ich probiere morgen mal damit umzugehen. Ich lade mir gerade die Testversion runter...
Ich probiere morgen mal damit umzugehen. Ich lade mir gerade die Testversion runter...
Ähnliche Themen
- Antworten
- 15
- Aufrufe
- 1.209
- Antworten
- 5
- Aufrufe
- 740
- Antworten
- 3
- Aufrufe
- 707
M
- Antworten
- 14
- Aufrufe
- 1.119
M