2016-05-17 11 views
1

У меня есть несколько кнопок, которые я отображающие на моем GUI приложения, используя следующий код XAML в моем проекте WPF:Установить размер кнопки размера изображения

<Button Style="{DynamicResource NoChromeButton}" Click="backBtn_Click" Margin="0,0,0,0" HorizontalAlignment="Left" > 
    <Image Source="C:\...\arrow_left.png" Height="30" Width="30" /> 
</Button> 
<Button Style="{DynamicResource NoChromeButton}" Click="RefreshBtn_Click" Margin="0,0,0,0" HorizontalAlignment="Left" > 
    <Image Source="C:\...\arrow_loop3.png" Height="30" Width="30" /> 
</Button> 

Однако, когда я запускаю мое приложение, кнопки кажутся больше размера отображаемых на них изображений, т. е. изображения 30x30, но кнопки прямоугольные, а не квадратные, причем их высота больше их ширины.

Я рисую кнопки рядом друг с другом, в ряд с несколькими другими кнопками, чтобы дать «панель меню» в верхней части окна приложения. Однако, поскольку высота этих кнопок показывает большее значение, чем то, что я установил, в строке меню отображается немного «пробела», выше и ниже других кнопок, которые отображаются с указанием высоты, которая Я установил, например:

<Button Style="{DynamicResource NoChromeButton}" Click="referThis" Margin="0,0,0,0" HorizontalAlignment="Left" HorizontalContentAlignment="Left" Height="30" Width="80"> 
    <TextBlock>Send Reference</TextBlock> 
</Button> 

с помощью этой кнопки, казалось бы, потому что я отображения текста, а не изображение на нем, он сохранил до значений ширины высоты &, что я установил, но это означает, что у него есть «белое пространство» выше и ниже него, так как другие кнопки вызывают <StackPanel>, где я поместил эти кнопки в большее вертикальное пространство, чем я предполагал.

Как я могу заставить кнопки, на которых я показываю изображения для отображения с размером, который я им установил?

Редактировать

кажется, что это делать с тем, что происходит, когда я вручную изменить размер окна, когда где выполняется APPLICATION- что <StackPanel>/<TabPanel> автоматически изменяются при изменении размеров окна ... Я установили Height<StackPanel> на определенное значение, и теперь это означает, что все кнопки ограничены этим размером, поэтому все они остаются того же размера, что и отлично.

Но, когда я изменяю размер окна, это приводит к изменению размера окна <TabPanel>, поэтому я заканчиваю белым пространством над и под кнопками - есть ли способ, которым я могу это остановить?

ответ

0

Установите вертикальное положение кнопки вверх. Установите нужную ширину/высоту на кнопку, а не изображение. Сделайте это через Margin. Также проверьте Alignment on MSDN. Затем установите растр изображения в Stretch.Fill.

Кроме того, что-то в вас стиль может бросать тебя, потому что это

<Button VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0"> 
     <Image Width="30" Height="30" /> 
</Button> 

работал отлично для меня.

0

Этот код именно то, что вы хотите:

<Button Width="100" Height="100" Padding="0" BorderThickness="0"> 
    <Image Source="image.jpg" Stretch="Fill"/> 
</Button> 

Примечания отступов и BorderThickness значения, которые соответствуют изображению на кнопку. Поскольку RoyalPotato сказал, что вы можете изменить ширину и высоту кнопки и размер изображения будет динамически растягиваться.

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