Aplikasi saya menunjukkan tata letak lantai kantor di mana kursi digambarkan sebagai persegi panjang dan margin, guratan, tinggi, lebar, dan perataan disimpan dalam database untuk setiap ID Kursi. Berdasarkan status alokasi, isi persegi panjang berwarna merah atau hijau. Status alokasi dan detail hunian disimpan di SQL db. Saya perlu memiliki metode MouseLeftButtonDown terpisah untuk setiap persegi panjang. yang akan menunjukkan kepada saya detail penghuninya.
//Code Behind
public SeatUserControl()
{
string cubeId = "";
string status = "";
string name = "";
string number = "";
int height = 0;
int width = 0;
int leftMargin = 0;
int topMargin = 0;
InitializeComponent();
SqlDataAdapter data = new SqlDataAdapter();
DataTable dt = new DataTable();
string SqlQuery = "select c.SeatId,c.Height,c.Width,c.Stroke,c.MarginTop,c.MarginLeft,e.Status,e.EmpName,e.EmpNumber from SeatDetails c Join MasterData e ON c.SeatId =e.SeatId";
SqlConnection sqlconn = new SqlConnection(connectionstring);
sqlconn.Open();
data = new SqlDataAdapter(SqlQuery, sqlconn);
data.Fill(dt);
try
{
foreach (DataRow row in dt.Rows)
{
leftMargin = int.Parse(row["MarginLeft"].ToString());
topMargin = int.Parse(row["MarginTop"].ToString());
height = int.Parse(row["Height"].ToString());
width = int.Parse(row["width"].ToString());
status = row["Status"].ToString();
cubeId = row["SeatId"].ToString();
name = row["EmpName"].ToString();
number = row["EmpNumber"].ToString();
PlaceRectangles();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
sqlconn.Close();
}
public string PlaceRectangles()
{
Rectangle rect = new Rectangle();
rect.Height = height;
rect.Width = width;
SolidColorBrush StrokeBrush = new SolidColorBrush(Colors.Black);
rect.Stroke = StrokeBrush;
rect.VerticalAlignment = VerticalAlignment.Top;
rect.HorizontalAlignment = HorizontalAlignment.Left;
rect.Margin = new Thickness(leftMargin, topMargin, 0, 0);
rect.RadiusX = 8;
rect.RadiusY = 5;
if (status.Equals("Allocated"))
{
SolidColorBrush myBrush = new SolidColorBrush(Colors.RoyalBlue);
rect.Fill = myBrush;
}
else if (status.Equals("Available"))
{
SolidColorBrush myBrush = new SolidColorBrush(Colors.Red);
rect.Fill = myBrush;
}
else
{
SolidColorBrush myBrush = new SolidColorBrush(Colors.White);
rect.Fill = myBrush;
}
seatCanvas.Children.Add(rect);
}
}
//XAML
<UserControl x:Class="SpaceAllocator.SeatUserControl"
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="580" d:DesignWidth="800">
<Grid Height="580" Width="800">
<Canvas Name="seatCanvas" Height="580" Width="800" Margin="0,3,-2,78"> </Canvas>
</Grid>
</UserControl>
enter code here