我有一个ListBox
有多个ListBoxItem
,我在StackPanel
内使用ListBoxItem
Image
& TextBlock
一个Image
控件。我是根据TextBlock
的选择以编程方式设置Collapsed
的可见性。
我遇到的问题是,当图像为<ListBoxItem Tag="ATCListBox">
<StackPanel x:Name="ATCPanel" Orientation="Horizontal">
<Image
x:Name="atcTick"
Visibility="Collapsed"
Height="45" Width="45"
Source="ms-appx:///Assets/greentick.png"
/>
<TextBlock
Text="ATC"
Foreground="#0078D7"
Margin="45,0,0,0"
FontSize="32"
FontFamily="{ThemeResource Bold}"
FontWeight="Normal"
SelectionHighlightColor="Blue"
/>
</StackPanel>
</ListBoxItem>
时,TextBlock向左移动,这不是预期的。
driver.findElement(By.xpath("//li[text()='Agra']")).click();
答案 0 :(得分:0)
Visiblity="Collapsed"
表示<Image />
元素不会占用任何空间 - 它等同于CSS'display: none;
- 如果您希望空间保持被占用,则应使用{{1} }相当于CSS'Visibility="Hidden"
或opacity: 0
。
答案 1 :(得分:0)
这是受人尊敬的行为。如果要保留空间,则应将“可见性”设置为“隐藏”。
可见:显示元素 隐藏:不显示元素,但为布局中的元素保留空间 折叠:不显示元素,也不在布局中为其预留空间。
答案 2 :(得分:0)
您使用WPF标记了您的问题,但在评论回复中您说您正在使用UWP。
在UWP中,WPF Visibility="Hidden"
选项被删除,而Opacity="0"
可用于隐藏元素,同时仍确保其空间被占用。
见这里:Workaround for Visibilty.Hidden state- Windows Phone 8.1 App Development
<Image
x:Name="atcTick"
Opacity="0"
Height="45" Width="45"
Source="ms-appx:///Assets/greentick.png"
/>