0

我想让我的点击事件更改为 ApplicationBarIconButton。我的 ApplicationBarIconButton 看起来像这样:

<shell:ApplicationBarIconButton x:Name="driveAction" Click="drive_click" IconUri="/img/car.png" Text="kör" />

我希望IconUri/img/car.png更改为 ex。/img/car-stop.png和从körpassera的文本值。我尝试了下面的功能,但它只会导致我的应用程序关闭。

private void drive_click(object sender, EventArgs e)
{
  this.driveAction.Text = "passagera";
  this.driveAction.Source = "/img/car-stop.png";
}

怎么了?为什么这不起作用?

4

3 回答 3

2

默认的 ApplicationBar 要求您通过 ApplicationBar 对象访问按钮。为此,您必须知道要更改的按钮的索引

private const int DriveButtonIndex = 0;

private void drive_click(object sender, EventArgs e)
{
    var button = (ApplicationBarIconButton)ApplicationBar.Buttons[DriveButtonIndex];
    button.IconUri = new Uri("/img/car-stop.png", UriKind.Relative);
    button.Text = "passagera";
}

有一些自定义的 ApplicationBars 允许您命名您的按钮。但我发现上述解决方案总是对我有用。

于 2013-06-13T04:27:11.473 回答
1

直接从应用栏列表中获取——

ApplicationBar.Buttons[0].Text = "passagera";
ApplicationBar.Buttons[0].Source = "/img/car-stop.png";

您还可以查询特定图标的按钮列表作为更可靠的长期解决方案,但如果您只有一个按钮并且不会改变,则此方法有效。

于 2013-06-12T15:08:12.353 回答
0

因为ApplicationBarIconButton它实际上是一个本机控件而不是真正的 XAML 对象,所以您不能按名称引用它。

如果在 XAML 中创建,您可以通过索引引用它。或者,您可以在代码中创建它,然后您可以维护一个可以使用的命名引用。

于 2013-06-12T15:52:26.210 回答