質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

2回答

627閲覧

Xamarin.Formsのコントロールにpublicなのにアクセスできないプロパティがある

panda531

総合スコア12

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2018/10/11 01:22

編集2018/10/11 01:28

お聞きしたい内容はタイトルの通りですが、具体的には以下のプロパティにアクセスできません。

C#

1using System; 2using Xamarin.Forms.Internals; 3using Xamarin.Forms.Platform; 4 5namespace Xamarin.Forms 6{ 7 [RenderWith(typeof(_SliderRenderer))] 8 public class Slider : View, IElementConfiguration<Slider> 9 { 10 (中略) 11 12 public static readonly BindableProperty MinimumTrackColorProperty = BindableProperty.Create(nameof(MinimumTrackColor), typeof(Color), typeof(Slider), Color.Default); 13 14 (中略) 15 16 public Color MinimumTrackColor 17 { 18 get { return (Color)GetValue(MinimumTrackColorProperty); } 19 set { SetValue(MinimumTrackColorProperty, value); } 20 } 21 22 (中略) 23 24}

Sliderクラスに関して言うと、MinumumTrackColorの他にもMaximumTrackColorやThumbColorなどにもアクセスできません。
XAMLとC#両方で試しましたがエラーが発生してしまいます。

公式のドキュメントを確認してみると、これらのプロパティと対応するフィールドは以下のような説明が書いてあります。

Fields

MaximumProperty Identifies the Maximum bindable property.
MaximumTrackColorProperty Backing store for the MaximumTrackColor property.
MinimumProperty Backing store for the Minimum property.
MinimumTrackColorProperty Backing store for the MinimumTrackColor property.
ThumbColorProperty Backing store for the ThumbColor property.

Properties

Maximum Gets or sets the maximum selectable value for the Slider. This is a bindable property.
MaximumTrackColor Gets or sets the color of the portion of the slider track that contains the maximum value of the slider.
Minimum Gets or sets the minimum selectable value for the Slider. This is a bindable property.
MinimumTrackColor Gets or sets the color of the portion of the slider track that contains the minimum value of the slider.

各プラットフォーム向けのNativeコントロールとXamarin.Formsコントロールを紐付けるViewRenderer辺りが怪しいのではないかと思っていろいろ調べているのですがなかなか解決しません。

Xamarin.Forms独特の仕様なのか、それともC#の機能なのかすら見当がついていない状態です。

一見publicに見えるプロパティにアクセスできない原因についてどなたかご存知無いでしょうか?

補足情報(FW/ツールのバージョンなど)

Xamarin.Forms : 3.0.0.482510

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

MinumumTrackColorMaximumTrackColorなどは、Xamarin.Forms 3.1以上から使えます。

Xamarin.Forms 3.1 - Xamarin

投稿2018/10/11 01:42

編集2018/10/11 01:44
f-miyu

総合スコア1625

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

panda531

2018/10/11 02:07

回答ありがとうございます! Xamarin.Formsのバージョンを更新したところSlider系はアクセスできるようになりました! Xamarin.Forms : 3.0.0.482510ではアクセスできなかったその他のプロパティについても確認してみます! また何かありましたらよろしくおねがいします!
guest

0

MinimumTrackColorProperty はstatic なので、
Slider.MinimumTrackColorProperty
でアクセスします

MinimumTrackColor はプロパティなので、Slider のインスタンスを作ってそこからアクセスする必要がありますが、そこらへんは大丈夫でしょうか。

投稿2018/10/11 01:30

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

panda531

2018/10/11 02:10

回答ありがとうございます! 一応確認したときはSliderのインスタンスを作成したあとに確認をおこなっていました! 結論としては単純にXamarin.Formsのバージョンが古かったために実装されていないプロパティを参照しようとしていたようです。 今後も何かありましたらよろしくおねがいします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問