WPF刮刮乐
WPF刮刮乐
<Window
x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp2"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="329"
Height="450"
MouseDown="UserControl_MouseDown"
MouseMove="UserControl_MouseMove"
MouseUp="UserControl_MouseUp"
mc:Ignorable="d">
<Grid>
<Grid.Background>
<ImageBrush ImageSource="/220810025-677037712005f5749b8c6481aa1b6c9a507047e97479d68af717064904b1db2d (1).png" Stretch="Uniform" />
</Grid.Background>
<Grid
x:Name="gridShadow">
<Grid.Background>
<ImageBrush ImageSource="/325e99d639690e7e8a30d908d6c8b1cd399f0ac611a49e30a848ccf2eaae4ccf.png"/>
</Grid.Background>
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="30"
Foreground="White">
刮奖区
</TextBlock>
</Grid>
</Grid>
</Window>
using System;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp2
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
PathGeometry gridGeometry = new PathGeometry();
private bool isDown = false;
double originArea;
bool hasShowResult = false;
public MainWindow()
{
InitializeComponent();
RectangleGeometry rg = new RectangleGeometry();
rg.Rect = new Rect(0, 0, this.Width, this.Height);
gridGeometry = Geometry.Combine(gridGeometry, rg, GeometryCombineMode.Union, null);
gridShadow.Clip = gridGeometry;
originArea = gridGeometry.GetArea();
}
private void UserControl_MouseMove(object sender, MouseEventArgs e)
{
if (isDown)
{
EllipseGeometry rg = new EllipseGeometry();
rg.Center = e.GetPosition(gridShadow);
rg.RadiusX = 20;
rg.RadiusY = 20;
//排除几何图形
gridGeometry = Geometry.Combine(gridGeometry, rg, GeometryCombineMode.Exclude, null);
gridShadow.Clip = gridGeometry;
var currentArea = gridGeometry.GetArea();
if ((currentArea * 100 / originArea) < 50 && !hasShowResult)
{
hasShowResult = true;
MessageBox.Show("恭喜中奖1个亿!");
}
}
}
private void UserControl_MouseDown(object sender, MouseButtonEventArgs e)
{
isDown = true;
}
private void UserControl_MouseUp(object sender, MouseButtonEventArgs e)
{
isDown = false;
}
}
}
fffffffffffffffff
test red font.

浙公网安备 33010602011771号