У меня есть кнопка с изображением и текстовым блоком. Кнопки создаются динамически на основе значений из базы данных. Теперь для определенного значения присутствует текст, и нет изображения. Я хочу показать этот текст в центре кнопки (по горизонтали и вертикали), но он не работает.Как сделать текст текстового блока в центре кнопки с изображением и текстом, если в WPF нет изображения.
Пожалуйста, найдите ниже XAML:
<ItemsControl ItemsSource="{Binding CategoriesList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Width="100" Margin="5" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
<Button.Template>
<ControlTemplate>
<Border CornerRadius="10" Background="Maroon">
<StackPanel Orientation="Vertical">
<Image Source="{Binding CategoryImagePath}" Height="50"></Image>
<TextBlock Text="{Binding CategoryName}" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
</StackPanel>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Если изображение не доступно, я хочу, чтобы показывать только текст на кнопке, но она должна быть по центру.
Если есть изображение, я делаю изображение и текст отображаемыми, но когда изображение недоступно, текст отображается, но он не находится в центре. Он перемещается в верхнюю часть кнопки.
Есть и другие варианты - например, вы жёстко высоту изображения. Если вместо этого вы указали высоту кнопки, часть изображения может упасть в ничто, и вы останетесь с вертикально центрированной строкой. Зависит от ваших данных, хотя ... –
Спасибо за ответ Питер. Вы поняли, чего я хочу, но у меня мало вопросов, если вы могли бы помочь мне. –
Конечно, я отдам. (Если вам нравится ответ, подумайте о его принятии.) –