我有一个5x4的网格,我在那里放置按钮,以后我将添加图片。我需要以某种方式知道此按钮位于此网格中的位置,因此我可以用此Plus图像替换添加的图片。或者,如果我选择多张图片,要知道从哪个位置,填补了网格them.This是我的网格,模板:把按钮的位置放在一个网格中
<Grid>
<ItemsControl x:Name="myItems" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,50,0,0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Click="Add_Picture">
<Border Width="100" Height="100" BorderThickness="1" BorderBrush="Black" Margin="3" Padding="5">
<!-- <Canvas Margin="-1,-1,0,0" Width="90" Height="90" Name="cCanvas" MouseDown="cCanvas_MouseDown">-->
<Canvas Margin="-1,-1,0,0" Width="90" Height="90" Name="cCanvas">
<Canvas.Background>
<ImageBrush Stretch="UniformToFill" ImageSource="{Binding ImagePath}"/>
</Canvas.Background>
<!-- <Grid Name="SquareSelectedIndicator" Visibility="{Binding IsSelected, Converter={StaticResource BoolToVis}, FallbackValue=Hidden}" Width="30" Height="30" >-->
</Canvas>
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="BorderBrush"
Value="Black" />
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="BorderBrush"
Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
我可以想象的唯一的事情是在网格的元素上使用(可能是两级深度)foreach,在这里你可以比较元素是否具有某个属性(如名称),并获取Grid.Row和Grid.Column属性一旦匹配 –
所以你想要访问'Add_Picture'事件处理程序中的行和列索引吗? – christoph
是的,对于每个调用该事件的按钮都是如此。他的初始协调 – gneric