单击按钮,仅浏览wpf程序中透明图像的一部分

时间:2016-08-29 14:23:49

标签: c# wpf button click background-image

我正在尝试实现仅点击透明背景的一部分的功能。背景图像为实心灰色,具有3个圆形,矩形和椭圆形。图像是透明的。按钮1出现在矩形内部,按钮2出现在椭圆内部。当程序运行时,两个按钮都可见但当前不可点击,因为图像在网格中并在按钮后添加。我只想点击矩形,因此可以点击按钮1,但仍然将图像保持在按钮2之前,这样它就不可点击了。

我已经搜索了很多解决方案,但还没有找到我正在寻找的东西。这个例子是我目前正在处理的一个愚蠢的版本 - 但功能基本相同。任何帮助,将不胜感激。

的Xaml:

$fb = new Facebook([
    'app_id' => 'appid',
    'app_secret' => 'appsecret',
    'default_graph_version' => 'v2.7',
]);

$params=[
    'message'=>'Example Post',
    'access_token'=>'ACCESS_TOKEN',

];

try{
    $ret=$fb->post('/PAGEID/feed',$params);
} catch(FacebookResponseException $e) {
    echo 'Graph returned an error: '.$e->getMessage();
    exit;
} catch(FacebookSDKException $e) {
    echo 'Facebook SDK returned an error: '.$e->getMessage();
    exit;
}

$graphNode = $ret->getGraphNode();

print_r($graphNode);

代码背后:

<Window x:Class="TransparentClickThrough.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"             
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Button x:Name="ButtonOne" Click="ButtonOne_Click" Content="Button1" Width="50" Height="25" ></Button>
    <Button x:Name="ButtonTwo" Content="Button2" Width="50" Height="25" Margin="379,100,59,148" Click="ButtonTwo_Click"></Button>
    <Image Source="/TransparentClickThrough;component/background.png" />
</Grid>
</Window>

}

background - 3 circles, rectangle, and oval are all set to transparent

This is what the program looks like when running.

1 个答案:

答案 0 :(得分:0)

我能够在网格中添加一个带透明填充的矩形。然后我添加了一个事件“MouseDown”交互触发器,通过DataTrigger切换可见性,而DataTrigger又改变了背景颜色。

与此链接类似link