Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF日期选择器内边框停用_C#_Wpf_Datepicker_Border - Fatal编程技术网

C# WPF日期选择器内边框停用

C# WPF日期选择器内边框停用,c#,wpf,datepicker,border,C#,Wpf,Datepicker,Border,我尝试在我的想法中设计一个wpf日期选择器,但是在停用内部边界时遇到了一些麻烦。 当我将鼠标悬停在日期选择器上或单击它时,输入区域周围会出现浅蓝色边框。你可以在截图上清楚地看到它。 如何停用此边界 您可以修改默认的DatePicker控件模板,使控件具有唯一的外观。有关详细信息,请参见。覆盖DatePickerTextBox的模板并删除使蓝色边框出现的视觉状态转换: <DatePicker> <DatePicker.Resources> <S

我尝试在我的想法中设计一个wpf日期选择器,但是在停用内部边界时遇到了一些麻烦。 当我将鼠标悬停在日期选择器上或单击它时,输入区域周围会出现浅蓝色边框。你可以在截图上清楚地看到它。 如何停用此边界


您可以修改默认的DatePicker控件模板,使控件具有唯一的外观。有关详细信息,请参见。

覆盖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>

不,没有更简单的方法:

尝试使用Blend for Visual Studio提取样式。拿一个战利品看看里面是什么样式的,试着禁用边界或者给它们一个不同的颜色。这也可能是一个更难设计的Chrome东西。不幸的是,由于我的工作环境,我不得不使用Visual Studio Express。据我所知,不可能在express下使用blend?我发现了如何在没有blend的情况下提取样式。按照下面的思路:正如我正确理解的那样,我想要去掉的蓝色边框是datepickertextbox的一部分。因此,我以默认样式向该标记添加了一个边界笔刷。这仅设置文本框周围的边框,并保留蓝色边框的原样。在我看来,这是疯狂和不直观的。但它是有效的。谢谢!我将尝试将其放入静态资源中,以保持xaml更干净