Форматирование Кнопки с изображением WPF

Вы можете решить это с помощью регулярного выражения (если вам нужна только группа словных символов между последними «/» и «.»):

    String str="core/pages/viewemployee.jsff";
    str=str.replaceFirst(".*/(\\w+).*","$1");
    System.out.println(str); //prints viewemployee
23
задан Sonic Soul 8 June 2010 в 12:41
поделиться

3 ответа

Красота (и проклятие?) WPF - это возможность изменять шаблон элементов управления.

Вы можете установить шаблон кнопки примерно следующим образом (это свободная рука, поэтому вам придется немного подправить его по своему вкусу):

        <Button x:Name="btn16x16">
            <Button.Template>
                <ControlTemplate>
                    <Border HorizontalAlignment="Center" VerticalAlignment="Center" >
                        <Image Source="pack://siteoforigin:,,,/Resources/SixteenBySixteen.png" 
                               Width="16" 
                               Height="16"/>
                    </Border>
                </ControlTemplate>
            </Button.Template>
        </Button>
49
ответ дан 29 November 2019 в 00:56
поделиться

Вы должны удалить все настройки Width и Height и установить для кнопок HorizontalAlignment и VerticalAlignment для кнопок значение Center (или Left / Right или Top / Bottom соответственно). ). По умолчанию эти свойства установлены на Stretch, что заставляет кнопку растягиваться до доступного пространства. Поскольку изображение является содержимым кнопки, оно также растягивается. Примерно так должно работать:

Возьмите этот пример кода:

<Button Background="Transparent" BorderBrush="{x:Null}" HorizontalAlignment="Center" VerticalAlignment="Center">
    <Image Source="thePathToYourImage" Stretch="None"/> <!-- EDIT: added Stretch="None" here! -->
</Button>

.


Следующее подразумевалось как альтернатива с другим результатом, который, очевидно, (учитывая ваши комментарии) не тот, который вы хотите.

Если вы хотите, чтобы кнопка растягивалась, а не изображение, вы также можете установить свойства выравнивания Image в значение, отличное от Stretch. Или вы можете установить его свойство Stretch на None. Это сделает кнопку максимально возможной, но изображение останется в исходном размере (16x16). Это будет работать следующим образом:

<Button Background="Transparent" BorderBrush="{x:Null}">
    <Image Source="thePathToYourImage" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Button>
<!-- OR: -->
<Button Background="Transparent" BorderBrush="{x:Null}">
    <Image Source="thePathToYourImage" Stretch="None"/>
</Button>

10
ответ дан gehho 29 November 2019 в 00:56
поделиться

Думаю, это может дать людям ответ, который они ищут: кнопки с изображением и без границ вообще.

0
ответ дан 29 November 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: