2016-09-06 2 views
0

Я использую Image с ComboBox в моем приложении WPF для C#.Исправьте ComboBox для изображения

Я хочу, чтобы ComboBox фиксировался в верхнем/правом углу Image (а не в сетке, содержащей оба). Фактически эти два элемента находятся в сетке.

Мне сложно четко объяснить, что я хочу, есть фотографии, которые помогут мне.

Что я хочу:

resizeOK

Что у меня есть:

resizeNOK

Как я могу написать мой ComboxBox для того чтобы достигнуть этого?

<Grid> 
    <Image HorizontalAlignment="Stretch" x:Name="VideoControl" FlowDirection="LeftToRight"/> 
    <ComboBox Grid.Row="1" x:Name="ListCameraDevices" Style="{StaticResource {x:Static ToolBar.ComboBoxStyleKey}}" 
       HorizontalAlignment="Right" VerticalAlignment="Top" 
       Width="auto"     
       Background="Transparent" BorderBrush="Transparent" Foreground="White" 
       BorderThickness="0"/> 
</Grid> 

ответ

2

Ответ Gaaty в основном правильный, но определения столбцов не нужны. Вам просто нужно убедиться, что у изображения есть свойство Stretch, равное «Uniform», так что оно правильно изменяет внутреннюю сетку.

Вот упрощенная версия:

<Grid> 
    <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <Image Source="https://a2ua.com/awesome/awesome-004.jpg" Stretch="Uniform" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> 
     <ComboBox HorizontalAlignment="Right" VerticalAlignment="Top" Background="Transparent" BorderBrush="Transparent" Foreground="White" BorderThickness="0"/> 
    </Grid> 
</Grid> 
+0

Как и с ответом Гаати, это не работает для меня. –

+0

Мой плохой, он работает хорошо, я забыл удалить другое изображение из этой сетки ... Теперь это прекрасно, спасибо –

1

вы можете попробовать добавлять изображения и ComboBox внутри своей собственной сетки (внутри другой сетке), и они пересекаются в одной и той же сетки колонке, установленной на ColumnDefinition.

<Grid> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition /> 
      <ColumnDefinition /> 
     </Grid.ColumDefinitions> 
     <Image Grid.Column="0" Grid.ColumSpan="2" HorizontalAlignment="Stretch" x:Name="VideoControl"  FlowDirection="LeftToRight"/> 
     <ComboBox Grid.Column="1" Grid.Row="1" x:Name="ListCameraDevices" Style="{StaticResource {x:Static ToolBar.ComboBoxStyleKey}}" 
      HorizontalAlignment="Right" VerticalAlignment="Top" 
      Width="auto"     
      Background="Transparent" BorderBrush="Transparent" Foreground="White" 
      BorderThickness="0"/> 
    </Grid> 
</Grid> 

Или, может быть, просто поместив их в своей собственной сетки еще и просто установив ZIndex в ComboBox появляться наверх.

[EDIT]:

создал тестовый проект, делает довольно много, что вы хотите достичь.

+0

Я попробовать свои решения, но нет видимых изменений. ComboBox все еще находится в углу сетки. Когда я изменяю размер сетки (с помощью GridSplitter), combox выходит из изображения. Есть ли способ разместить ComboxBox внутри изображения? –

+0

Это работа, я взял решение ibebbs (самое короткое), но спасибо –

Смежные вопросы