フォームアプリケーションをフォームI持っレーベル:ViewModelにでラベルは私のXamarinで
<Label Text="{Binding Number}" HorizontalTextAlignment ="Center">
:メッセージが受信されると
private int _number;
public int Number
{
get { return _number; }
set { SetProperty(ref _number, value); }
}
、私は更新数:
MessagingCenter.Subscribe<EmptyMessage>(this, "NUMBER_CHANGED", OnNumberChanged);
private async void OnNumberChanged(EmptyMessage emptyMessage)
{
Number = ReadNumberFromDB();
}
これはすべてメインページにあります。 MainPageから「NUMBER_CHANGED」メッセージがトリガされた場合、NumberはUIで更新され、Numberを含むラベルは適切に中央に配置されます。
MainPageから、PushAsync SecondPageを使用できます。 SecondPageから "NUMBER_CHANGED"をトリガーすることもできます。それをトリガしてMainPageに戻ると、Numberが更新され、のラベルには適切な値がありますが、中央に置かれる代わりにのままになります。
このXamarin UIのバグはありますか?このための回避策はありますか?私は何とかラベルを伝えてその位置をリフレッシュする必要があります。ラベルを常に中央に揃えたい。私はそれが内容をリフレッシュした後に整列されたままになっている理由は分かりません。
XAMLに 'XAlign =" Center "'を追加すると、違いはありますか? –
個々のラベルを整列させるのではなく、アプリの幅の中央に配置するスタティックレイアウトにラベルをラップしたい場合があります – SergioAMG
多くの場合、HorizontalText/VerticalTextAlignmentが見つからないため常に動的に更新するものに対して正しく動作します。私はまた、この問題がForms 2.3.4ではさらに悪くなっていることに気がつきました。ほとんどの場合、ほとんどの場合、Horizontal/VerticalOptionsに切り替わったばかりですが、パフォーマンスが多少強化されています。 – Nick