【问题标题】:Xamarin forms set max height imageXamarin 表单设置最大高度图像
【发布时间】:2020-03-30 18:23:24
【问题描述】:

我一直在寻找这个,但找不到任何东西。

我想为图像设置最大高度。它可能在其他元素内,也可能不在。

我不希望该图像具有静态尺寸。

感谢任何帮助

【问题讨论】:

  • 没有通用的答案。 Xamarin 布局很复杂,在不知道上下文的情况下将任何内容设置为 100% 的固定大小(在您的情况下为最大大小)并非易事。所以你必须先显示你当前的代码。

标签: xamarin xamarin.forms


【解决方案1】:

Xamarin.Forms 中没有最大高度属性,CSS 样式也不支持它。已经有增加最大高度属性的增强请求:https://www.google.com/search?q=Xamarin.+Forms+maximum+height&oq=Xamarin.+Forms+maximum+height&aqs=chrome..69i57j0.6714j0j7&sourceid=chrome&ie=UTF-8

但是,您可以监视 ImageSizeChanged 事件并检查高度并根据需要重新设置,例如:

XAML:

<Image x:Name="image" Source="imagename.png" />

后面的C#代码:

public MainPage()
    {
        InitializeComponent();

        image.SizeChanged += (sender, e) => {
            if (image.Height > 50)
                image.HeightRequest = 50;
        };
    }

【讨论】:

  • 在很多情况下(例如,如果 Image VerticalOptions 是 Fill)这不起作用,实际上我希望这在他的应用程序中不起作用,尽管它在某些情况下可能会起作用。
  • 是的,我发帖后就想到了。另一种选择可能是自定义渲染器,但在自定义渲染器中为图像设置高度不会根据新图像高度更新周围元素的布局。
【解决方案2】:

如果您将 VerticalOptions 设置为填充以外的其他值,则使用 HeightRequest 属性,例如

Image fileIcon = new Image
{
   Source = "icon",
   HeightRequest = 50,
   VerticalOptions = LayoutOptions.Center,
   HorizontalOptions = LayoutOptions.Center
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2015-02-15
    相关资源
    最近更新 更多