C# 通过添加到页眉按钮防止折叠/扩展wpf扩展器
我有以下问题:我必须向扩展器标题添加两个额外的按钮(以更改扩展器内容的表示方案-图形或表格)。 但问题是,当我按下这些按钮时,扩展器正在折叠或扩展(我只想更改内容)。正如我在web开发中所记得的那样,这是一种泡沫事件。我为CancelBubble找到了以下解决方案: e、 已处理=正确; 但这没用C# 通过添加到页眉按钮防止折叠/扩展wpf扩展器,c#,wpf,xaml,header,expander,C#,Wpf,Xaml,Header,Expander,我有以下问题:我必须向扩展器标题添加两个额外的按钮(以更改扩展器内容的表示方案-图形或表格)。 但问题是,当我按下这些按钮时,扩展器正在折叠或扩展(我只想更改内容)。正如我在web开发中所记得的那样,这是一种泡沫事件。我为CancelBubble找到了以下解决方案: e、 已处理=正确; 但这没用 <Expander x:Name="xpdNumberDevices"> <Expander.Header > <Border Backgroun
<Expander x:Name="xpdNumberDevices">
<Expander.Header >
<Border Background="#E5E5E5">
<StackPanel Width="605" Height="40" Orientation="Horizontal" HorizontalAlignment="Center">
<Label Foreground="Black" Content="Number of Devices"
HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10,0,0,0" FontSize="14" />
<Image x:Name="imgGraphNumberDevices" Height="24" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="380,0,0,0"
MouseLeftButtonUp="btnNumDeviceGraph_Click">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="/Pictures/graph_button.png"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/Pictures/graph_button_over.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
<Image Height="24" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,0,0"
MouseLeftButtonUp="btnNumDeviceTable_Click">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="/Pictures/table_button.png"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/Pictures/table_button_over.png"/>
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</StackPanel>
</Border>
</Expander.Header>
<my:Chart Name="crtDeviceNumberChart" Title="Number of Devices" VerticalAlignment="Top" Margin="20,5,0,0" Height="280" Width="600" BorderBrush="#FFE5E5E5">
<my:BarSeries Title="Devices" DependentValuePath="Key" IndependentValuePath="Value" ItemsSource="{Binding}" IsSelectionEnabled="True" />
</my:Chart>
</Expander>
既然您将图像视为按钮,为什么不将其制作为带有图像的按钮呢?作为测试,如果用按钮替换图像,您将看到单击标题上的按钮不会展开/折叠
扩展器
您只需修改按钮的模板,它就会看起来像一幅图像:
<Button>
<Button.Template>
<ControlTemplate>
<Border HorizontalAlignment="Center" VerticalAlignment="Center" >
<Image Source="/Pictures/graph_button.png" Width="24" Height="24"/>
</Border>
</ControlTemplate>
</Button.Template>
</Button
你也可以发布事件代码吗?code
private void BtnumDeviceTable_Click(object sender,RoutedEventTargets e){e.Handled=true;xpdNumberDevices.IsExpanded=true;}Tnx Ryan,它工作得很好!我只是想知道为什么图像在这种情况下不工作,哪些控件在那里工作,哪些不工作?我不知道100%的原因,但我想这与图像
没有处理“点击”事件有关,因此它会在视觉树中弹出气泡,直到找到可以处理它的东西,即扩展器
标题。因此,任何能够立即处理点击事件的方法都可以防止点击事件冒泡到标题并防止折叠/展开。我感谢您的快速和有用的响应!谢谢