我有以下WPF代码:
Grid Width="260" Height="170">
<Border Margin="5" MouseEnter="UIElement_OnMouseEnter">
<Border.Background>
<VisualBrush>
<VisualBrush.Visual>
<Canvas Background="{x:Null}" IsHitTestVisible="True">
<Rectangle Canvas.Left="20" Canvas.Top="20" Width="200" Height="50" Fill="Tan"/>
<Button
x:Name="ToggleButton"
Width="30"
Height="30"
Canvas.Top="10"
IsHitTestVisible="True"
PreviewMouseDown="ToggleButton_OnPreviewMouseDown"
Canvas.Left="10"
/>
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
</Border.Background>
<Border.Effect>
<DropShadowEffect Color="Black" Direction="225"/>
</Border.Effect>
</Border>
</Grid>
问题是无法点击该按钮。有谁知道这个问题的解决方案/解决方法?我也试过透明背景画布而不是null。
谢谢, 卢西恩
答案 0 :(得分:0)
<Button x:Name="ToggleButton"
Width="30" Height="30"
Canvas.Top="10" Canvas.Left="10"
IsHitTestVisible="True"
PreviewMouseDown="ToggleButton_OnPreviewMouseDown"
Click="ButtonToggleButton_Click"
/>
注意'Click =“ButtonToggleButton_Click”'
您的C#代码将是:
private void ButtonToggleButton_Click(object sender, RoutedEventArgs e)
{
//Do Actions here
}
编辑:我只是把它放在VS中并注意到'无法点击'的意思 - 您的按钮被绘制为VisualBrush方法的一部分。
如果你从那个外面移动你的按钮声明,那就是
<Border Margin="5" MouseEnter="UIElement_OnMouseEnter">
<Button
x:Name="ToggleButton"
Width="30" Height="30"
IsHitTestVisible="True"
Click="ButtonToggleButton_Click"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Margin="10,10,0,0"
/>
<Border.Background>
<VisualBrush>
<VisualBrush.Visual>
<Canvas Background="{x:Null}" IsHitTestVisible="True">
<Rectangle Canvas.Left="20" Canvas.Top="20" Width="200" Height="50" Fill="Tan"/>
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
</Border.Background>
<Border.Effect>
<DropShadowEffect Color="Black" Direction="225"/>
</Border.Effect>
</Border>
您将在画布的左上角找到一个正常运行的按钮,从那里您可以单独设置按钮。