XAML无法从标签中获取文本

时间:2017-01-24 20:13:05

标签: c# wpf xaml

我收到了这样的错误

  

当前上下文中不存在名称“ScoreBtn”

  

当前上下文中不存在名称“LvlBttn”

在c#侧,但我可以获得Label x的文本:Name =“Lines”。错误在哪里,我该如何解决?

感谢您的帮助,

 </Window.Resources>
<DockPanel LastChildFill="false">
    <Button DockPanel.Dock="Right" Visibility="Hidden" Width="300">Right</Button>
    <StackPanel DockPanel.Dock="Right" Width="311" >
        <Button x:Name="btnPlay" Content="Play" Click="btnPlay_Click" Width="50" Height="25" Margin="5"/>
        <Button x:Name="Score" HorizontalAlignment="Left" VerticalAlignment="Top" Height="90" Margin="0,20,0,0" Width="170" Click="buttonPlay_Click"  >
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Grid>
                        <Image Name="img1" Source="Images/play.png" Stretch="Fill" />
------------------->>   <Label x:Name="ScoreBtn" FontFamily="Bradley Hand ITC" HorizontalAlignment="Center" FontSize="22" VerticalAlignment="Center" Opacity="0.8" Content="Score"/>
                    </Grid>
                </ControlTemplate>
            </Button.Template>
        </Button>
        <Button x:Name="level" HorizontalAlignment="Left" VerticalAlignment="Top" Height="90" Margin="0,20,0,0" Width="170" Click="buttonPlay_Click"  >
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Grid>
                        <Image Name="img1" Source="Images/play.png" Stretch="Fill" />
------------------->>   <Label Content="Level 1" x:Name="LvlBttn" FontFamily="Bradley Hand ITC" HorizontalAlignment="Center" FontSize="22" VerticalAlignment="Center" Opacity="0.8"/>
                    </Grid>
                </ControlTemplate>
            </Button.Template>
        </Button>
        <Label Visibility="Hidden" Content="Lines " Height="56" x:Name="Lines" HorizontalAlignment="Center" FontSize="28" FontWeight="Bold" Margin="0,0,0,0"/>

1 个答案:

答案 0 :(得分:2)

这将为Label提供名为Score的按钮。 "ScoreBtn"是label元素的名称。它没有我想象的那么复杂。

var label = (Label)Score.Template.FindName("ScoreBtn", Score);

你真的应该听Peter Duniho,编写一个视图模型,并将标签的Content属性绑定到一个viewmodel属性,但是如果你还没有一个viewmodel,你可以不想重写整个项目。由于您的XAML中没有一个Binding,我想可能就是这种情况。