Mam klasę z 3 członkami, tylko dwie z nich są istotne; jeden jest wielobokiem, a drugi int [] współrzędnych. Chcę być świadomy tego, że współrzędne odpowiadają wielobokowi, ale naprawdę utknąłem tutaj.Uzyskaj klasę nadrzędną członka w MouseEvent
Znając współrzędne wielokąta, mam na myśli abstrakcyjne współrzędne sześcianu, które przechowuję w klasie wzdłuż tego wielokąta i które wykorzystuję do zadeklarowania jej Punktów.
Współrzędne to X, Y i Z i przechowuje je w int [3] w poniższej klasie. I to, co chcę zrobić, to aby móc złapać tych współrzędnych sześciennych każdym zdarzenie jest wywoływane .:
public class Tile
{
public int[] coords;
public Polygon hex;
public List<object> content;
}
Sposób wypełniacz Lista:
foreach (int[] i in ValidCoordinates)
{
int[] coords = i;
double apotema = Math.Sqrt(Math.Pow(20, 2) - Math.Pow(20/2, 2));
double auxX = x + (coords[0] * (20 * 3/2));
double auxY = y + (coords[0] * apotema + (coords[1] * apotema * 2));
Polygon poly = Hex.HexagonalPolygon(20, auxX, auxY);
poly.Fill = Brushes.Blue;
Hexagon.Tile tile = new Hexagon.Casilla();
tile.coords = coords;
tile.hex = poly;
ListTiles.Add(tile);
}
i pokażę elementu wielokąta na Listę dachówek tak ...
foreach (Hexagon.Tile t in ListTiles)
{
PolyCanvas.Children.Add(t.hex);
}
a następnie znaleźć wielokąta z MouseEvent i zmienić jego właściwości:
private void PolyCanvas_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.OriginalSource is Polygon)
{
Polygon poly = e.OriginalSource as Polygon;
poly.Fill = Brushes.Red;
}
}
Nieco więcej o kodzie ... Xmal:
<Grid Name="MainGrid">
<Grid.RowDefinitions>
<RowDefinition Height="400"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Canvas Name="PolyCanvas" MouseDown="PolyCanvas_MouseDown" Height="700" Width="1200">
</Canvas>
<TextBox Name="txt" Grid.Row="1"></TextBox>
</Grid>
Mam dokładnie szukał odpowiedzi, ale jestem pojęcia.
Chcesz sprawdzić, czy myszy wciśnięty na wieloboku lub na inny? –
Na wielokącie, który nacisnąłem. – Commit
Czy próbowałeś uzyskać informacje od "nadawcy"? –