それは、最初のStatusBarItem
場所が完全に占有され、2 番目の場所StatusBarItem
が収まらないためです。StatusBar
このコードを試して、それが何をするか見てください
<StatusBar
x:Name="MainStatusBar" Margin="14,462,0,0" HorizontalAlignment="Left" Width="600" VerticalAlignment="Top">
<StatusBarItem MaxWidth="550">
<TextBlock
x:Name="StatusBarTextBlock"
TextWrapping="NoWrap"
Text="{Binding StatusBarText, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</StatusBarItem>
<StatusBarItem HorizontalAlignment="Right" MinWidth="75">
<TextBlock
x:Name="StatusBarTimeBlock"
TextWrapping="NoWrap"
Text="{Binding SearchTime, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</StatusBarItem>
</StatusBar>
600pxStatusBar
と最大 550px の最初の StatusBarItem があります...したがって、2 番目に残っているのは 50px だけStatusBarItem
なので、StatusBar には収まりません。Width
あなたのコードでは、あなたのプロパティを指定しなかったStatusBarTextBlock
ので、すべてかかります(テキストが十分に長い場合)。
では、何か違うことを試してみましょう...
<StatusBar
x:Name="MainStatusBar" Margin="14,462,0,0" HorizontalAlignment="Left" Width="600" VerticalAlignment="Top">
<StatusBarItem HorizontalAlignment="Right" MinWidth="250">
<TextBlock
x:Name="StatusBarTimeBlock"
TextWrapping="NoWrap"
Text="{Binding SearchTime, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock
x:Name="StatusBarTextBlock"
TextWrapping="NoWrap"
Text="{Binding StatusBarText, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</StatusBarItem>
</StatusBar>
順序を切り替えてStatusBarItems
MinWidthTimeBlock StatusBarItem
を 250px に設定しました... に追加され、StatusBar
最初の項目であり 600px に収まるため MinWidth を無視しなくなりましたStatusBar
。
SoMinWidth
に十分なスペースが残っていない場合にのみ無視されStatusBar
ます。
しかし、私が提供したコードに注意を払うと、おそらく何かに気付くでしょう。がある
<StatusBarItem HorizontalAlignment="Right" ... >
それはあなたのStatusBarItem
withStatusBarTimeBlock
が右にあると言っているわけではありません...なぜなら、アイテムStatusBar
は常に左から右に追加されるからです。したがって、右に配置されるStatusBar
場合がありますが、他のアイテムがない場合にのみ、次のアイテムまたは末尾に配置されます。
編集
私の答えはあなたの質問に答えるために作成されました
StatusBarTextBlock が長すぎる場合、StatusBarTimeBlock は 75px 未満になります。理由はありますか?
そしてそうしましたが、それはあなたが望んでいたものではないようです。
私が言ったように、アイテムStatusBar
は常に左から右に追加されます。それは、アイテムが でホストされているためDockPanel
です。どのように機能するかを知っていればDockPanel
、いくつかのアイテムを右側にドッキングできることも知っています。
だからあなたはこれを行うことができます。それはたまたまあなたが望んでいるものですが、求めていません。
<StatusBar x:Name="MainStatusBar" Margin="14,490,0,0" HorizontalAlignment="Left" Width="600" VerticalAlignment="Top">
<StatusBarItem DockPanel.Dock="Right" HorizontalAlignment="Right" MinWidth="75">
<TextBlock
x:Name="StatusBarTimeBlock"
TextWrapping="NoWrap"
Text="{Binding SearchTime, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</StatusBarItem>
<StatusBarItem>
<TextBlock
x:Name="StatusBarTextBlock"
TextWrapping="NoWrap"
Text="{Binding StatusBarText, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</StatusBarItem>
</StatusBar>
StatusBarTimeBlock
これも「XAML の最初」ですが、右にドッキングされていることに注意してください。