Ich versuche, einen wpf datepicker in meinen Ideen zu stylen, habe aber Probleme mit der Deaktivierung des inneren Rahmens. Wenn ich den Mauszeiger über den Datumszeiger halte oder hineinklicke, erscheint ein hellblauer Rahmen um den Eingabebereich herum. Sie können es deutlich auf dem Screenshot sehen. Wie kann ich diese Grenze deaktivieren?WPF DatePicker Innenrand deaktivieren
Antwort
Aufschalten der Vorlage des DatePickerTextBox
und die visuellen Zustandsübergänge entfernen, die den blauen Rand erscheinen:
<DatePicker>
<DatePicker.Resources>
<Style TargetType="DatePickerTextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DatePickerTextBox}">
<Grid>
<Grid.Resources>
<SolidColorBrush x:Key="WatermarkBrush" Color="#FFAAAAAA"/>
</Grid.Resources>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0"/>
<VisualTransition GeneratedDuration="0:0:0.1" To="MouseOver"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver" />
</VisualStateGroup>
<VisualStateGroup x:Name="WatermarkStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Unwatermarked"/>
<VisualState x:Name="Watermarked">
<Storyboard>
<DoubleAnimation Duration="0" To="0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="ContentElement"/>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_Watermark"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="FocusStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Unfocused"/>
<VisualState x:Name="Focused" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="1" Opacity="1" Padding="{TemplateBinding Padding}">
<Grid x:Name="WatermarkContent" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<Border x:Name="ContentElement" BorderBrush="#FFFFFFFF" BorderThickness="1"/>
<Border x:Name="watermark_decorator" BorderBrush="#FFFFFFFF" BorderThickness="1">
<ContentControl x:Name="PART_Watermark" Focusable="False" IsHitTestVisible="False" Opacity="0" Padding="2"/>
</Border>
<ScrollViewer x:Name="PART_ContentHost" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="0" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.Resources>
</DatePicker>
Und nein, es ist kein einfacher Weg :)
Das ist es. Verrückt und nicht intuitiv meiner Meinung nach. Aber es funktioniert. Danke vielmals! Ich werde versuchen, es in eine statische Ressource zu setzen, um das Xaml sauberer zu halten –
Sie können die Standarddatepicker Control modifizieren, um die Steuerung ein einzigartiges Aussehen zu verleihen. Weitere Informationen finden Sie unter DatePicker Styles and Templates.
Wie ich es richtig verstanden habe, möchte ich die blaue Grenze loswerden von ist Teil der Datepickertextbox. Also habe ich diesem Tag im Standardstil einen BorderBrush hinzugefügt. Dies legt nur den Rahmen um das Textfeld fest und hinterlässt den blauen Rahmen wie es ist –
- 1. Datum in Datepicker wpf deaktivieren?
- 2. WPF Datepicker zum Deaktivieren der Benutzereingabe
- 3. wpf datepicker
- 4. So deaktivieren Sie einen Datepicker mit einer "if-Anweisung" wpf
- 5. Bootstrap Datepicker deaktivieren Funktion
- 6. Tage von Datepicker deaktivieren
- 7. Grails: deaktivieren g: datePicker
- 8. Wochenenden deaktivieren - bootstrap datepicker
- 9. jQuery Datepicker - deaktivieren (nicht deaktivieren) vergangene Daten
- 10. AngularUI Datepicker dynamisches Datum deaktivieren
- 11. Kendo UI Datepicker Deaktivieren Eingabe
- 12. jQuery datepicker, monatelange Auswahl deaktivieren
- 13. jquery datepicker bestimmte Daten deaktivieren
- 14. Datum in Jquery deaktivieren Datepicker
- 15. WPF Datepicker Updateproperty funktioniert nicht
- 16. Datepicker Ausgabe Format Datagrid wpf
- 17. Anpassen der WPF-DatePicker-Maske
- 18. WPF-Toolkit - Diagrammanimation deaktivieren
- 19. WPF Deaktivieren von DropShadowEffect
- 20. WPF deaktivieren Fenster verschieben
- 21. WPF Listview deaktivieren Auswahl
- 22. Bestimmte Daten von html5 deaktivieren datepicker
- 23. Wie zukünftige Daten in Datepicker zu deaktivieren?
- 24. So deaktivieren Sie vorheriges Datum in Datepicker
- 25. jquery datepicker Wochenenden deaktivieren ohne vorherShowDay
- 26. Android Deaktivieren vergangener Daten in Datepicker
- 27. Deaktivieren von Daten mit Bootstrap datepicker
- 28. Deaktivieren Sie Monate auf Monat/DatePicker
- 29. Vorherige Daten in Odoo datepicker deaktivieren
- 30. Deaktivieren Sie einige Datumsbereiche in Bootstrap-Datepicker
Versuchen Sie, den Stil unter Verwendung von Mischung zu extrahieren für Visual Studio. Und nehmen Sie eine Beute, welchen Stil es gibt und versuchen Sie, die Grenzen zu deaktivieren oder ihnen eine andere Farbe zu geben. Dies kann auch ein Chrome-Ding sein, das schwieriger zu stylen ist. –
Leider muss ich Visual Studio Express aufgrund meiner Arbeitsumgebung verwenden. Wie ich verstanden habe, ist es nicht möglich, Blend unter Express zu verwenden? –
Ich fand heraus, wie man ohne Mischung zu stylen extrahiert. gerade folgte der folgende Thread: https://stackoverflow.com/questions/8825030/how-to-extract-default-control-template-in-visual-studio –