在UWP-Hub中选择元素
本文关键字:元素 选择 UWP-Hub | 更新日期: 2023-09-27 18:14:27
在我的研究中关于"在Hub中选择元素",我发现了这个线程。FindChildControl函数在大多数情况下对我有效,但不幸的是,这个函数似乎不能处理像Ellipses或Images这样的元素。由于我是c#和UWP的初学者,是否有可能解决这些问题?
例如,这里有一段代码,它应该在"weatherSec"中心部分内处理图像,但它仍然是空的。
Image ResImage = FindChildControl<Image>(weatherSec, "ResultImage") as Image;
TextBlock ResultTextBlock = FindChildControl<TextBlock>(weatherSec, "ResultTextBlock") as TextBlock;
//var position = await LocationManager.GetPosition();
RootObject myWeather =
await OpenWeatherMapProxy.GetWeather(
51.43,
6.75);
string icon = String.Format("ms-appx:///Assets/Weather/{0}.png", myWeather.weather[0].icon);
ResImage.Source = new BitmapImage(new Uri(icon, UriKind.Absolute));
ResultTextBlock.Text = myWeather.name + " - " + ((int)myWeather.main.temp).ToString() + "°C - " + myWeather.weather[0].description;
问候达达
我检查了你的演示并重现了这个问题。问题是您将,但不幸的是,这个函数似乎不能处理像Ellipses或Images这样的元素。
OnLoaded
放置在MainPage构造函数中,其中XAML尚未完全加载。所以你没有在weatherSec
中获得Image元素(实际上你不能在那里获得任何元素,不仅仅是Image
或Eclipses
)。
要解决这个问题,您需要将Onloaded
放入MainPage.Loaded
中,如下所示:
public MainPage()
{
this.InitializeComponent();
InitGPIO();
this.Loaded += MainPage_Loaded;// add event
//OnLoaded(); //comment out this line, the xaml hasn't been fully loaded
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
OnLoaded();
}