我想使用扩展 Entry和Button横向StackLayout:
var item = new StackLayout {
Orientation = StackOrientation.Horizontal,
HorizontalOptions = LayoutOptions.FillAndExpand,
Children = {
new Entry {
Placeholder = "Feldtitel",
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.StartAndExpand // NOTE THIS
},
new Button{
Text = CFieldDescription.getNameForFieldType( fieldType ),
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.End
}
}};
Run Code Online (Sandbox Code Playgroud)
虽然Entry是在开始时,Button最后,Xamarin.Forms 不会改变Entry填充水平空间的大小:

我需要更改我的代码吗?还是我发现了一个错误?
到目前为止,大多数使用Xamarin.Forms的示例都使用C#来构建UI.我更喜欢将XAML用于UI,并将其数据绑定到ViewModels.
我在使用Xamarin.Forms.MasterDetailPage和XAML时遇到了麻烦,我似乎无法将C#示例移植到XAML + ViewModels.
这是我到目前为止的XAML:
<?xml version="1.0" encoding="UTF-8" ?>
<MasterDetailPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:NSContacten;assembly=NSContacten"
x:Class="MasterDetailExample.Main"
Title="Master Detail Example">
<MasterDetailPage.Master BindingContext="{Binding Menu}">
<ContentPage Padding="5, 25">
<StackLayout Orientation="Vertical">
<Label Text="Master" HorizontalOptions="Center" />
<Label Text="{Binding Subtitle}" HorizontalOptions="Center" />
</StackLayout>
</ContentPage>
</MasterDetailPage.Master>
<MasterDetailPage.Detail BindingContext="{Binding Detailpage}">
<ContentPage Padding="5, 25">
<StackLayout Orientation="Vertical">
<Label Text="Detail" HorizontalOptions="Center" />
<Label Text="{Binding Subtitle}" HorizontalOptions="Center" />
</StackLayout>
</ContentPage>
</MasterDetailPage.Detail>
</MasterDetailPage>
Run Code Online (Sandbox Code Playgroud)
该组件有效:我确实看到了'Master'和'Detail'标签.不显示绑定标签(在BindingContext对象上).
我已经使用了大量不同的组合,但我仍然陷入困境:这是如何工作的?我的绑定是不正确的(如果它在"ContentPage"上),我不能绑定到.Master和.Detail属性等?"菜单"和"详细信息页面"绑定应该如何?
如果有人能帮助我,那将是一个巨大的帮助!下一步是在.Master中按下按钮时将更改.Detail.提前致谢!
任何人都可以告诉我如何在XAML中设置TableView.试过 -
<?xml version="1.0" encoding="UTF-8" ?>
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XYZ.Forms.HardCodedCells">
<ContentPage.Content>
<StackLayout>
<Label Text="Above TableView"></Label>
<TableView>
<TableRoot>
<TableSection Title="Test">
<TextCell Text="Test"></TextCell>
</TableSection>
</TableRoot>
</TableView>
</StackLayout>
</ContentPage.Content>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
这个"尝试"在屏幕上呈现空白?
如果我向TableSection添加额外的单元格,比如说EntryCell,我得到 -
"对象类型Xamarin.Forms.TextCell无法转换为目标类型:Xamarin.Forms.View"
顺便说一下,在哪里可以看到每个Forms元素的有效XAML语法?
在Xamarin.Forms,我该如何设置FontAttributes内XAML既粗体和斜体?
例:
<Style TargetType="Label">
<Setter Property="FontAttributes" Value="Bold" />
<Setter Property="FontAttributes" Value="Italic" />
</Style>
Run Code Online (Sandbox Code Playgroud) 我想知道为什么这个C#代码
long b = 20;
Run Code Online (Sandbox Code Playgroud)
被编译为
ldc.i4.s 0x14
conv.i8
Run Code Online (Sandbox Code Playgroud)
(因为需要3个字节而不是所需的9个字节ldc.i8 20.有关详细信息,请参阅此内容.)
而这段代码
double a = 20;
Run Code Online (Sandbox Code Playgroud)
被编译为9字节指令
ldc.r8 20
Run Code Online (Sandbox Code Playgroud)
而不是这个3字节的序列
ldc.i4.s 0x14
conv.r8
Run Code Online (Sandbox Code Playgroud)
(使用mono 4.8.)
这是错失的机会还是conv.i8代码大小增加失衡的成本?
所以我正在玩mongo的东西.创建了一个新的heroku应用程序,为它添加了一个mongolab选项,但每个mongoid方法都失败了.
我用Google搜索了,看起来这个问题在1.9.3之前的ruby很常见,但我运行的是1.9.3.
这是最简单的失败样本:
require 'sinatra'
require 'mongoid'
require 'json'
require "sinatra/reloader" if development?
Mongoid.load!("mongoid.yml")
class Company
include Mongoid::Document
field :code, type: String
field :sector, type: String
field :share_id, type: Integer
field :jse_code, type: Integer
end
get '/' do
"Hello"
end
get '/company' do
Company.exists?
end
Run Code Online (Sandbox Code Playgroud)
我在本地运行(对mongolab db)或在heroku上运行,我得到同样的错误:
12:22:33 web.1 | NoMethodError - undefined method `match' for nil:NilClass:
12:22:33 web.1 | /Users/sdx/.rvm/gems/ruby-1.9.3-p327/gems/mongoid-3.0.13/lib/mongoid/sessions/mongo_uri.rb:49:in `initialize'
12:22:33 web.1 | /Users/sdx/.rvm/gems/ruby-1.9.3-p327/gems/mongoid-3.0.13/lib/mongoid/sessions/factory.rb:103:in `new'
12:22:33 web.1 | /Users/sdx/.rvm/gems/ruby-1.9.3-p327/gems/mongoid-3.0.13/lib/mongoid/sessions/factory.rb:103:in `parse'
12:22:33 web.1 | /Users/sdx/.rvm/gems/ruby-1.9.3-p327/gems/mongoid-3.0.13/lib/mongoid/sessions/factory.rb:62:in `create_session'
12:22:33 web.1 | …Run Code Online (Sandbox Code Playgroud) 我正在为Xamarin.Mac/ 创建绑定MonoMac.我想将dylib生成的内容嵌入到dll已完成Xamarin.iOS的[LinkWith]属性中.
有可能吗?如果是这样的话?或者我应该dylib从消费应用程序加载?再次在这种情况下,怎么样?
我想: -丢弃dylib在本地参考文件夹(不工作) -增加一个[assembly: MonoMac.RequiredFramework]属性(未找到dylib)
大家好我正在尝试为每个文本字段嵌入图像...当我将文本插入第一个文本字段时,图像也会对第二个文本字段产生影响.我想那个用户选择的每个文本域的visualizzassero图像而不是直接给所有人...我在哪里做错了?
谢谢大家
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField {
NSString *nomecognome = self.FF_NomeCognomeTexfield.text ;
NSString *user = self.FF_UsernameTextField.text ;
if ([nomecognome length] == 0 || [user length] == 0 ){
FF_NomeCognomeTexfield.leftViewMode = UITextFieldViewModeAlways;
UIImageView* imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 32, 32)];
imageView.image = [UIImage imageNamed:@"FF_CheckOFF"];
imageView.contentMode = UIViewContentModeScaleAspectFit;
FF_NomeCognomeTexfield.leftView = imageView;
FF_UsernameTextField.leftViewMode = UITextFieldViewModeAlways;
UIImageView* imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 32, 32)];
imageView1.image = [UIImage imageNamed:@"FF_CheckOFF"];
imageView1.contentMode = UIViewContentModeScaleAspectFit;
FF_UsernameTextField.leftView = imageView1;
} else {
FF_NomeCognomeTexfield.leftViewMode = UITextFieldViewModeAlways;
UIImageView* imageView = [[UIImageView …Run Code Online (Sandbox Code Playgroud) 我正在使用Xamarin.Forms,目前正试图制作一个TableView没有节头.现在iOS这看起来很好,因为节标题不可见或可点击,但Android标题上是空白,可见和可点击的.
我试过这个http://forums.xamarin.com/discussion/18037/tablesection-w-out-header
xaml中的代码 -
<TableView>
<TableView.Root>
<TableSection>
<TextCell Text="Login" Command="{Binding Login}" />
<TextCell Text="Sign Up" Command="{Binding SignUp}" />
<TextCell Text="About" Command="{Binding About}"/>
</TableSection>
</TableView.Root>
</TableView>
Run Code Online (Sandbox Code Playgroud)
c#中的代码
Content = new TableView
{
Root = new TableRoot
{
new TableSection ()
{
new TextCell { Text="Login", Command = Login },
new TextCell { Text="Sign Up", Command = SignUp },
new TextCell { Text="About", Command = About },
},
},
};
Run Code Online (Sandbox Code Playgroud) 已经有一些关于如何创建"自定义控件"的好例子 -
我想创建一个"复合自定义控件或用户控件 ",它包含在XAML中定义的多个元素(在共享代码中),然后使用渲染器进行自定义(比如调整每个平台的样式).
有没有人有这样做的例子呢?具有可绑定标签和输入框的视图的简单示例应足以显示主要原则.
这是我到目前为止 -
定义了一个ContentView来表示我们的用户控件布局和内容.
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="News.Forms.VisualNewsContentView">
<ContentView.Content>
<StackLayout>
<Label x:Name="MyLabel" Text="Label"></Label>
<Entry x:Name="MyEntry" Text="Entry"></Entry>
</StackLayout>
</ContentView.Content>
</ContentView>
Run Code Online (Sandbox Code Playgroud)
代码隐藏 -
public partial class VisualNewsContentView : ContentView
{
public VisualNewsContentView ()
{
InitializeComponent ();
}
// Not sure if I need this to access Entry ...
public Entry GetEntry ()
{
return MyEntry;
}
}
Run Code Online (Sandbox Code Playgroud)
为该ContentView添加Android自定义渲染器,如何访问和自定义ContentView的原生部件/控件?
[assembly:ExportRenderer (typeof(VisualNewsContentView), typeof(VisualNewsRenderer))]
namespace News.Forms.Android
{
public class VisualNewsRenderer: ViewRenderer
{
public VisualNewsRenderer () { } …Run Code Online (Sandbox Code Playgroud) xamarin ×3
xaml ×2
.net ×1
c# ×1
cil ×1
dylib ×1
heroku ×1
mlab ×1
mongodb ×1
mongoid ×1
monomac ×1
uiimageview ×1
uitextfield ×1
validation ×1
xamarin.mac ×1