放置在网格列中的按钮在悬停时不可点击或改变颜色

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

所以总的来说,我对 WPF 和 XAML 还很陌生,而且我的一个控件(一个按钮)有问题。对于某些背景,我有一个具有这种网格结构的 XAML 文件:

<Grid.ColumnDefinitions>
<ColumnDefinitions Width=Auto />
<ColumnDefinitions Width=Auto />
<ColumnDefinitions Width=Auto />
<ColumnDefinitions Width=Auto />
<ColumnDefinitions Width=* />
<ColumnDefinitions Width=Auto />
<ColumnDefinitions Width=Auto />
<Grid.ColumnDefinitions>

所以,在 XAML 代码中,每个 Grid.Column 都分配了一个不同的控件(ContentControl、DropDown 等)但是,当我将两个按钮放在 DockPanel 或 StackPanel 中并为 DockPanel 或 StackPanel 分配一个 Grid.Column 时,当我将鼠标悬停在按钮上,它们不会开始变为浅蓝色(我猜这是默认的 MouseOver 颜色),也无法点击。每个按钮都绑定到一个 DataContext,当按钮的 StackPanel 或 DockPanel 未分配 Grid.Column 时,该 DataContext 起作用(它基本上被推到包含它的表单中的网格左侧)。但是,当它被赋予一个 GridColumn 编号并且前面的 GridColumn 元素具有星号时,按钮不可单击并且当鼠标悬停在按钮上时根本不会改变颜色。我尝试了我能想到的一切(在 XAML 中更改 Zindex,试验网格定义的大小选项,...)。同样,我对 XAML 和 WPF 还是很陌生。有谁知道我可能会遗漏什么?

这里是 GridColumn 定义的例子:

<ContentControl Style="{StaticResource ....}"
Grid.Column="4"
Content="{Binding .....}"/>

<DockPanel Grid.Column="5"
  <Button Style="{StaticResource ....}"
  Command = {Binding Path = DataContext.somecommandname, 
  RelativeSource="..."
  CommandParameter="{Binding"}
  Visibility=""
/>
<Button ...../>
</DockPanel>

所以,基本上上面的 ContentSource 在资源文件中定义了大约 500 px 的最大宽度,并且它有星号 (*)。然而,按钮似乎不喜欢出现在任何带有星号的元素后面(我尝试了各种元素),并且不会起作用。

c# wpf xaml wpf-controls datacontext
© www.soinside.com 2019 - 2024. All rights reserved.