如何缩放图像以适合 TitleView

贝莱特

我使用 TitleView 布局在导航栏中使用图像。它有效但...

我在根据导航栏的高度设置图像大小时遇到​​问题。

<NavigationPage.TitleView>
    <StackLayout Orientation="Horizontal"
                 VerticalOptions="Center"
                 Spacing="10">

        <Image Source="flechegauche.png" BindingContext="{x:Reference TitleLabel}" HeightRequest="{Binding Height}"/>

        <Label x:Name="TitleLabel" Text="Evènements" FontSize="16" TextColor="White" 
               VerticalTextAlignment="Center" VerticalOptions="FillAndExpand"
               HorizontalTextAlignment="Center" HorizontalOptions="FillAndExpand" />

        <Image Source="filtre.png" HeightRequest="{OnPlatform iOS=60, Android=35, Default=40}"/>
        <Image Source="flechedroite.png" HeightRequest="{OnPlatform iOS=60, Android=35, Default=40}"/>

    </StackLayout>
</NavigationPage.TitleView>

如果我使用:HeightRequest="{OnPlatform iOS=60, Android=35, Default=40}"

但这不起作用: BindingContext="{x:Reference TitleLabel}" HeightRequest="{Binding Height}"

为什么 ?!?它仍然是将图像高度链接到导航栏高度的最佳方式(以确保图像正确适合),不是吗?

我也尝试将“Aspect”设置为“AspectFit”,但它没有改变任何东西。

贝莱特

好的,我找到了核心问题...

(1)我的图片在第一次出现时(在计算布局之前)太大,所以没有显示缩放图像所引用的标签,因此标签不能用于缩放图像,并且图像不显示预期的大小!

所以,我做了一个转换器来在开始时强制一个小的默认值:

class dblMultiplier : IValueConverter, IMarkupExtension
{
    public double Multiplier { get; set; } = 1.0f;
    public double Default { get; set; } = double.NaN;

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        double dvalue = System.Convert.ToDouble(value);

        if (dvalue < 0.0f && !double.IsNaN(Default) )
            return Default;

        return dvalue * Multiplier;
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotSupportedException("Only one way bindings are supported with this converter");
    }

    public object ProvideValue(IServiceProvider serviceProvider)
    {
        return this;
    }
}

我像这样更改了 XAML:

<Image Source="flechegauche.png" HeightRequest="{Binding Source={x:Reference TitleLabel}, Path=Height, Converter={Helpers:dblMultiplier Default=10}}"/>

(2) 我还必须确保标签不适合 TitleView 的整个高度。否则不会发生缩放。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xamarin Forms Shell TitleView不会居中图像

来自分类Dev

如何设置navigationItem.titleView图像水平居中?

来自分类Dev

如何缩放图像以适合容器?

来自分类Dev

如何缩放图像以适合屏幕

来自分类Dev

如何修复过渡期间titleView被遮罩到导航栏?

来自分类Dev

iOS-滚动UITableView时如何减少UINavigationBar titleView的alpha?

来自分类Dev

如何更改导航Titleview-Xamarin Forms的背景颜色?

来自分类Dev

如何更改导航Titleview-Xamarin Forms的背景颜色?

来自分类常见问题

缩放图像以适合画布

来自分类Dev

缩放图像以适合EditText

来自分类Dev

如何缩放图像以适合ios中的图像视图?

来自分类Dev

代号一:如何缩放图像以适合屏幕宽度?

来自分类Dev

代号一:如何缩放图像以适合屏幕宽度?

来自分类Dev

如何缩放3张图像以适合屏幕宽度

来自分类Dev

NavigationController titleView中的自定义UIView。如何让按钮在View Controller中触发动作

来自分类Dev

如何在navigationItem titleView中将xib的自定义视图居中

来自分类Dev

使图像适合X并缩放Y

来自分类Dev

图像缩放以适合Bootstrap网格

来自分类Dev

防止UINavigationBar的TitleView动画

来自分类Dev

UIButton作为UINavigationItem titleView

来自分类Dev

替换图像时缩放图像以适合

来自分类Dev

nsopenglview图像缩放,缩放以适合视图中的图像

来自分类Dev

如何缩放以适合我的情况?

来自分类Dev

程序恢复后TitleView消失

来自分类Dev

缩放任何图像以适合UIImageView

来自分类Dev

缩放任何图像以适合UIImageView

来自分类Dev

缩放图像以最适合视口

来自分类Dev

需要缩放图像以适合使用XSL FO

来自分类Dev

自动缩放图像以适合设备的其余高度

Related 相关文章

热门标签

归档