Ну это мой WPF проект и проблема заключается в этом элементе управления пользователя, People.xaml.cs файл:Как сделать объект, чтобы изменить цвет с MouseEnter и MouseLeave WPF
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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;
using System.IO;
namespace Projet
{
public partial class People : UserControl
{
Random rnd = new Random();
string filename = "C:\\Users\\Kristen\\peoples.txt";
public People()
{
InitializeComponent();
dataFromFile();
}
void dataFromFile()
{
if (!File.Exists(filename))
return;
var source = File.ReadLines(filename)
.Select(line => line.Split(' '))
.Select(m => new { name = m[0], length = int.Parse(m[1]) })
.OrderBy(x => x.length);
int k = 200;
foreach (var data in source)
{
Rectangle r = new Rectangle();
r.Height = data.length;
r.Width = 25;
r.Fill = new SolidColorBrush(Colors.Red);
Canvas.SetLeft(r, k);
Canvas.SetBottom(r, 200);
board.Children.Add(r);
k += 50;
}
}
private void board_MouseEnter_1(object sender, MouseEventArgs e)
{
board.Background = Brushes.Blue;
//I have tried with r.Fill = new SolidColorBrush(Colors.Red); but it wont work either
dataFromFile();
}
private void juur_MouseLeave_1(object sender, MouseEventArgs e)
{
board.Background = Brushes.Yellow;
}
IT берет данные из файл. В файле есть имена людей и их высоты. Это делает эти высоты для построения диаграммы с использованием прямоугольников на холсте. Я хочу изменить цвет прямоугольников с помощью MouseEnter и MouseLeave, но он просто меняет цвет фона холста. Я тоже, но мой People.xaml тоже на всякий случай.
<UserControl x:Class="Project.People"
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"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Canvas Background="Yellow" x:Name="board" MouseEnter="board_MouseEnter_1" MouseLeave="board_MouseLeave_1">
</Canvas>
Является ли это WPF? WinForms? Что-то другое? Пожалуйста, отметьте свой вопрос соответствующим образом. –
Есть ли конкретная причина, по которой вы не хотите использовать скрипт, такой как Java? Просто любопытно. – Jfabs
Может помочь, если вы покажете нам часть вашего кода, которая импортирует пространства имен и определяет, с какими объектами вы работаете ... Похоже на WinForms, но я не знаю, какой контроль вы связываете событиями мыши с , Панель? –