我是XAML和WPF的新手,到目前为止,我在SO上找到了很多很好的解释,可以解释我在项目工作中所需要的不同东西。我来自网络领域,在那里我有很多使用CSS为网页制作图形元素布局的经验。真正让我沮丧的是,当我得到一个模拟文件(如附件所示)时,我不知道如何在WPF页面中制作一些自定义的漂亮UI。
特别是这个文件,我需要放置左边有边框,右边有一个正方形的按钮。这两个按钮的颜色取决于按钮的状态。如果按钮被按下,左边边框和右边正方形的颜色应该是绿色的(如屏幕截图所示)。
有没有类似或至少接近CSS的方法,我可以用来实现这一点?
1条答案
按热度按时间kiayqfof1#
您的一般布局建议您有一个状态集合,您希望将其表示为按钮列表。这些按钮应该是可切换的,并且在切换时显示绿色。在这种情况下,
ItemsControl
将是合适的,因为您不希望或需要选择,而是与按钮交互。对于按钮本身,还有很多工作要做。可视化表示和状态在控件模板中定义。您可以从头开始创建一个新的,也可以在copy the default control template中对其进行修改。这里我为
ToggleButton
创建了一个控件模板,它反映了您的模型。本质上,控件模板由
Grid
和ContentPresenter
组成,其中Grid
承载两个用于显示状态颜色的矩形,ContentPresenter
位于这两个矩形之间,用于显示内容。不同的状态有不同的触发器,它们相应地设置矩形的颜色。当IsChecked
为true
时,切换的状态是活动的,当您在按钮上按下鼠标按钮时,IsPressed
是活动的。如需如何建立自订控件样板的详细信息,请参阅文件集。
现在需要创建一个
ItemsControl
,绑定集合并添加一个DataTemplate
。数据模板定义了数据项的表示方式,请参见Data Templating Overview。就是这样,结果如下: