这是适用于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,它会响应按下。
答案 0 :(得分:0)
一个非常非常基本的错误 - 我忽略了通过不定义网格行来正确安排控件。 TextBlock位于Button的顶部 - 尽管文本并未完全覆盖该区域,但它的透明部分似乎仍然阻碍了按钮。从中吸取的教训是,它与逻辑树或初始化无关!