按钮边框颜色xamarin形式未显示

时间:2016-12-15 09:26:23

标签: android xaml button xamarin xamarin.forms

我想在Xamarin Forms中将边框颜色设置为按钮,但此代码不起作用:

<Button Text="Test" 
        BorderWidth="5" 
        BorderRadius="2" 
        BorderColor="Red">
</Button>

使用此代码时,边框不会出现。

  

我也试过this但是没有工作。

     

我已在Android 4.4(Phisical Device)和Android 6.0中尝试过它   (虚拟设备),但也不起作用。

     

已解决THIS

2 个答案:

答案 0 :(得分:3)

Xamarin Android中有两个BottonRenderers。

  1. Xamarin.Forms.Platform.Android.AppCompat命名空间下的ButtonRenderer。

  2. Xamarin.Forms.Platform.Android命名空间下的ButtonRenderer。

  3. BottonRenderer未在Xamarin.Forms.Platform.Android.AppCompat namesapce下实现绘图按钮边框。

    MainActivity是继承FormsAppCompatActivity而不是FormsApplicationActivity默认情况下在android项目中使用的位置。因此,渲染器位于Xamarin.Forms.Platform.Android.AppCompat namesapce下。但它没有实现绘制按钮边框。 如果需要绘制按钮边框,可以使用Xamarin.Forms.Platform.Android namesapce自定义渲染。

答案 1 :(得分:-1)

我有三星s3(API 19,Android 4.4 Kitkat)。 这实际上可以在我的手机上使用

public class HashMapSample {
    public static void main(String[] args) {
        Map<Person, String> map = new HashMap<Person, String>();
        map.put(new Person(100, "name 100"),  "this is person 100");
        map.put(new Person(200, "name 200"),  "this is person 200");

        Person key = new Person(100, "new name 100");
        if (map.containsKey(key)) {
            System.out.println(map.get(key));
        } else {
            System.out.println("NOT FOUND");
        }
    }
}

class Person {
    int id;
    String name;

    public Person (int id, String name) {
        this.id = id;
        this.name =  name;
    }

    @Override
    public int hashCode() {
        return id;
    }
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Person) {
            Person person = (Person) obj;
            return person.id == this.id;
        }
        return false;
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

在cs文件中

<?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="MyProject.MyPage" BackgroundColor = "White">
    <ContentPage.Content>
        <StackLayout Orientation = "Vertical" BackgroundColor = "White">

            <Button 
                Text="Test" 
                BorderWidth="10" 
                BorderRadius="5" 
                BorderColor="Red"
                    TextColor = "Black"
                    VerticalOptions = "Start"
                    HorizontalOptions = "Fill"
                BackgroundColor = "White">
            </Button>
        </StackLayout> 


    </ContentPage.Content>
</ContentPage>

希望有所帮助