在stackpanel内设置控件的位置

时间:2017-04-12 17:40:45

标签: c# xaml uwp

我有一个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();

3 个答案:

答案 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"
/>