将DatePicker附加到另一个UI元素

扬科夫

我有

<StackPanel Orientation="Horizontal">
    <Label Content="{Binding WidgetSubTitle}" Style="{StaticResource WidgetSubTitleStyle}" />

    <DatePicker SelectedDate="{Binding SelectedDate}">
        <DatePicker.Resources>
            <Style TargetType="DatePickerTextBox">
                <Setter Property="Visibility" Value="Collapsed" />
                <Setter Property="IsReadOnly" Value="True" />
            </Style>
        </DatePicker.Resources>
    </DatePicker>
</StackPanel>

看起来像

在此处输入图片说明

我想摆脱“日历”图标,而是将日期选择器“附加”到我的Label单击标签后,我想打开选择器(该选择器与DateTime视图模型中属性具有双向绑定)。我也可以将其替换Label为按钮,因此可以从其命令中受益,这不是问题。

我不知道该怎么做。我已经看到它把一个一个的解决方案CalendarPopup,但这似乎复杂的事情,对我来说。

我可以想象的一种解决方案是-隐藏整个DatePicker控件(可见性=折叠),然后单击按钮/标签时,仅打开该选择器的日历弹出部分的可见性。虽然不能完全弄清楚样式...

毫米8

您可以通过更改其ControlTemplate完全改变WPF控件的外观。在这种情况下,您可以为DatePicker控件定义一个自定义模板,该控件基本上使它看起来像一个Button,然后为Button定义另一个模板,使它看起来像Label。像这样的东西:

<DatePicker>
    <DatePicker.Template>
        <ControlTemplate TargetType="DatePicker">
            <Grid x:Name="PART_Root" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
                <Button x:Name="PART_Button">
                    <Button.Template>
                        <ControlTemplate TargetType="Button">
                            <Label Content="{Binding WidgetSubTitle}" Style="{StaticResource WidgetSubTitleStyle}" />
                        </ControlTemplate>
                    </Button.Template>
                </Button>
                <Popup x:Name="PART_Popup" AllowsTransparency="True" Placement="Bottom" PlacementTarget="{Binding ElementName=PART_TextBox}" StaysOpen="False"/>
            </Grid>
        </ControlTemplate>
    </DatePicker.Template>
</DatePicker>

这样做的好处是,即使更改控件的外观,控件的功能也保持不变。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将现有的 html 元素附加到另一个元素?

将列表(元素)附加到另一个列表中,按字母给出一个元素

试图将一个Polymer元素附加到另一个Polymer元素中

将一个列表的每个命名元素附加到另一个列表的相同命名元素

如何使用使用绑定属性的指令将一个元素附加到另一个元素?

将另一个numpy数组附加到numpy数组作为数组,而不是元素

将张量附加到另一个张量的每个元素

无法使用 konva 将变压器附加到另一个类的元素

将列表的元素附加到迭代器的左侧或右侧到另一个列表

使用powershell将另一个子元素附加到xml

如何将列表中的匹配元素附加到另一个列表?

将数据从矩阵附加到另一个

将pem附加到另一个

将数据从矩阵附加到另一个

如何将一个列表的所有元素附加到另一个列表?

单击时,将元素克隆到变量并将其附加到另一个元素

将列表的所有元素分别附加到python中另一个列表的所有元素

如何将多维数组中的元素附加到另一个多维数组的每个元素

oracle 11g PLSQL将xml文档作为子元素附加到另一个xml文档

如何在 Swift 中从另一个视图控制器将元素附加到数组中

是否可以将一个QGraphicsPixmapItem附加到另一个?

将一个文件附加到另一个文件中

将一个数据帧附加到另一个

将一个向量附加到另一个向量

动态地将一个 div 附加到另一个 div

将一个元组附加到另一个元组 python 中

如何使用python将一个csv文件附加到另一个

将一个文件的多行附加到另一个文件

将元组列表从一个附加到另一个