扩展WPF控件到下拉

问题描述 投票:0回答:1

我一直在WPF,有一段“香草”控制发展,但我碰到一种情况,什么能击中当场。

我一直在寻找一个TimePicker控制,我的约束是我要找的somehing我既可以使用和免费分发。我发现它看起来像它可能几乎是理想的控制。

analog clock face

https://www.roy-t.nl/2016/03/05/customizable-touch-friendly-timepicker-clock-for-wpf.html的礼貌。这已经作为一个WPF控件,我可以写一个测试应用程序并使用它。用户周围的拉手(我使用非触摸的笔记本电脑鼠标)和设置时间。我没有要求设置秒,所以....理想。

几乎。唯一的一点是,这种控制是平的,150×150像素,或什么的,房地产,它现在是固定的占用。

我想将它变成某种下拉[弹出]的,我估计像微软的DatePicker控件。其中,签约时,只会显示数字时间(只读),但在扩展时,将显示此控制,并允许时的控制进行设置。在这种的DatePicker显示日历的方式相同。

麻烦的是,我不知道如何最好地去了解它。我不知道我会采取什么样的任务。任何人都可以给我一些指点?给我的任务大小的想法?你也许见过类似的例子,只是让我可以得到代码所涉及的数量和复杂性的想法?当我完成后,该控件将坐在一个对话框,将坐在一个应用程序,捕捉时间的功能的一小部分内。此外IIRC只有一个在我需要捕捉的时候应用的地方。因此,虽然我想我的控制看起来一样好,我可以做到,我不希望太深陷开发“只是”一个控制。

contracted DatePicker control(承包)

enter image description here(扩)

wpf user-controls popup
1个回答
1
投票

巧合的是,我也一直在寻找timepicker控制我自己的项目。我不需要拖动的手,所以我只是在做两个微调。这将是一个用户控件。

如果你用它不能被重新templateable确定这是不是一个巨大的工作件。模板是指一个自定义的控制,其是更硬。固定看看能不能在用户控件工作。

下拉菜单通常是指一个弹出。或者至少容器你的东西进去。https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/popup-overview这是一个单独的窗口中含有一个,所以如果你说拖了浏览器窗口,在其上,同时开那么你会发现一个奇怪的现象发生了。弹出窗口将出现在浏览器的顶部。弹出窗口是相当容易,虽然使用。您可以以类似的方式来你可能已经看到了上下文菜单的设置喜欢的DataContext。

 x:Name="myPopup" 
 DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Mode=Self}}"

另一种方法是一个装饰器。他们走在它是在一个窗口一切之上的特殊层。但他们是在一个窗口 - 所以,如果你有一个显示和拖动浏览器窗口过它,浏览器将在最前面。

这是否是显著取决于如何短暂即弹出/装饰器会。这不是通常被认为是说组合框的一个问题。装饰器是棘手与你以前从来没有做过他们的工作。还有谁已经跨过了桥梁,创造了可重复使用的方法的人:

http://www.nbdtech.com/Blog/archive/2010/07/12/wpf-adorners-part-4-ndash-simple-and-powerful-system-for.aspx

© www.soinside.com 2019 - 2024. All rights reserved.