由XamlReader加载的网格中的按钮不响应单击

时间:2014-05-12 18:03:32

标签: c# wpf windows-phone-8 windows-phone xamlreader

这是适用于Windows Phone 8的项目。

我尝试使用XamlReader加载包含多个对象的Grid,其中一个是按钮。按钮可以很好地创建,找到并在c#中附加一个处理程序,但似乎没有响应点击 - 按下时按钮不会改变颜色,也不会调用相关的处理程序。

XamlReader正在读取的XAML是

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Name = "testgrid" Background = "Transparent">
        <Button  x:Name="btn" Content="Button" HorizontalAlignment="Left" 
          VerticalAlignment="Top" Margin="0,0,0,0" Grid.Row="1" Height="81"/>
        <TextBlock Text = "Test"/>
</Grid>

使用的c#代码是

Grid tGrid = (Grid)XamlReader.Load(xaml);
Button tgtButton = (Button)tGrid.FindName("btn");      
LayoutRoot.Children.Add((UIElement)tGrid);
tgtButton.Content = "bloop";

这可能是什么问题?谢谢!

P.S。如果加载的xaml只是一个按钮,使用相同的方法将其添加到LayoutRoot,它会响应按下。

1 个答案:

答案 0 :(得分:0)

一个非常非常基本的错误 - 我忽略了通过不定义网格行来正确安排控件。 TextBlock位于Button的顶部 - 尽管文本并未完全覆盖该区域,但它的透明部分似乎仍然阻碍了按钮。从中吸取的教训是,它与逻辑树或初始化无关!