如何在 C# 标记中将 Frame 的高度设置为等于其宽度?
Posted
技术标签:
【中文标题】如何在 C# 标记中将 Frame 的高度设置为等于其宽度?【英文标题】:How do I set a Frame's height equal to its width in C# Markup? 【发布时间】:2021-12-11 11:18:15 【问题描述】:在 Microsoft 的 Xamarin 文档中,他们有这个示例 here 展示了如何使用 XAML 进行操作,但我有一些动态生成的帧,因此我需要能够在 C# 中完成。
这是执行此操作的 XAML 代码,谁能帮我把它翻译成 C#?
<BoxView Color="Red"
WidthRequest="200"
HeightRequest="Binding Source=RelativeSource Self, Path=WidthRequest"
HorizontalOptions="Center" />
谢谢!
【问题讨论】:
【参考方案1】:通常在 c# 中,值存在于变量中;只需将该变量用于两个属性:
int size = 200;
var view = new BoxView() WidthRequest = size, HeightRequest = size ;
如果您已经有一个设置了 WidthRequest 的视图,那么:
view.HeightRequest = view.WidthRequest;
【讨论】:
【参考方案2】:<BoxView Color="Red"
WidthRequest="200"
HeightRequest="Binding Source=RelativeSource Self, Path=Width"
HorizontalOptions="Center" VerticalOptions="Center" />
【讨论】:
请提供更多上下文,请记住,有些用户不会理解,您的代码的哪一部分解决了问题。记住:回答问题比你看起来像一个体面的答案更详细一点(童子军规则适用于 SO)【参考方案3】:您可以使用 setBinding 方法(),如下代码所示:
var boxview=new BoxView();
boxview.Color=Color.CornflowerBlue;
boxview.HorizontalOptions = LayoutOptions.Center;
boxview.VerticalOptions = LayoutOptions.Center;
boxview.WidthRequest=100;
boxview.setBinding(BoxView.HeightProperty,new Binding("WidthRequest"),source:boxview);
【讨论】:
以上是关于如何在 C# 标记中将 Frame 的高度设置为等于其宽度?的主要内容,如果未能解决你的问题,请参考以下文章