我嘗試在我的想法中設計一個wpf datepicker,但在取消激活內部邊框時遇到了一些麻煩。 當我將鼠標懸停在日期選擇器上或單擊它時,輸入區域周圍會出現淺藍色邊框。你可以在截圖中清楚地看到它。 我如何關閉此邊框?WPF DatePicker內邊框關閉
0
A
回答
1
覆蓋了DatePickerTextBox
的模板,並刪除可視狀態轉換,使藍色邊框出現:
<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>
而且沒有,有沒有更簡單的方法:)
+0
就是這樣。我認爲瘋狂和不直觀。 但它的工作。非常感謝! 我會嘗試將其放入靜態資源以保持xaml清潔程序 –
0
您可以修改默認的DatePicker控件模板給控制獨特的外觀。有關更多信息,請參閱DatePicker Styles and Templates。
+0
正如我理解的正確,我想擺脫藍色邊框是datepickertextbox的一部分。所以我在默認樣式中添加了一個BorderBrush到這個標籤。這隻會設置文本框周圍的邊框,因爲它是 –
相關問題
- 1. 關閉jQuery Datepicker關閉jQuery對話框
- 2. jquery datepicker關閉
- 3. WPF對話框關閉
- 4. WPF中的內部'邊框'
- 5. WPF按鈕內部邊框
- 6. 關閉對話框也關閉datepicker - 包括jsfiddle
- 7. Bootstrap datepicker不關閉
- 8. Datepicker不關閉關閉jquery模式
- 9. WPF Menuitem邊框
- 10. 關閉內部框架
- 11. jquery datepicker自動關閉
- 12. 明確關閉Mobiscroll Datepicker
- 13. JQuery DatePicker關閉行爲
- 14. 關閉WPF MainWindow
- 15. 關閉Popup後的奇怪邊框
- 16. 雪碧去關閉屏幕的邊框
- 17. WPF MVVM DialogService關閉模式對話框?
- 18. 關閉WPF框架中的頁面
- 19. WPF列表框關閉懸停效果
- 20. WPF無邊框窗口內利潤
- 21. 雙邊框與WPF
- 22. WPF - 標題邊框
- 23. 標題邊框WPF
- 24. WPF剪裁邊框
- 25. WPF文本框邊框
- 26. WPF關閉子關閉父窗口
- 27. WPF MainWindow不能關閉。關閉
- 28. WPF關閉動畫
- 29. 關閉WPF窗口
- 30. wpf datepicker
嘗試使用混合提取風格對於Visual Studio。並採取什麼風格在那裏掠奪,並嘗試禁用邊界或給他們一個不同的顏色。這也可能是一個Chrome風格的硬件。 –
不幸的是,由於我的工作環境,我必須使用Visual Studio Express。據我瞭解,不可能在明示下使用混合物? –
我發現如何提取到沒有混合的風格。只是按照以下線程:https://stackoverflow.com/questions/8825030/how-to-extract-default-control-template-in-visual-studio –