Merge pull request #339 from dotnet/custom_renderer_multi
Added custom renderer sample
|
@ -0,0 +1,19 @@
|
|||
Any raw assets you want to be deployed with your application can be placed in
|
||||
this directory (and child directories) and given a Build Action of "AndroidAsset".
|
||||
|
||||
These files will be deployed with your package and will be accessible using Android's
|
||||
AssetManager, like this:
|
||||
|
||||
public class ReadAsset : Activity
|
||||
{
|
||||
protected override void OnCreate (Bundle bundle)
|
||||
{
|
||||
base.OnCreate (bundle);
|
||||
|
||||
InputStream input = Assets.Open ("my_asset.txt");
|
||||
}
|
||||
}
|
||||
|
||||
Additionally, some Android functions will automatically load asset files:
|
||||
|
||||
Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
|
|
@ -0,0 +1,24 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<UseMaui>true</UseMaui>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<ConsolePause>false</ConsolePause>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<ConsolePause>false</ConsolePause>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0-android</TargetFramework>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CustomRenderer\CustomRenderer.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.410601">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
using System;
|
||||
|
||||
using Android.App;
|
||||
using Android.Content;
|
||||
using Android.Runtime;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
using Android.OS;
|
||||
using Android.Content.PM;
|
||||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Controls;
|
||||
|
||||
|
||||
namespace CustomRenderer.Android
|
||||
{
|
||||
[Activity (Label = "CustomRenderer.Android.Android", Icon = "@drawable/icon",
|
||||
Theme = "@style/MainTheme", MainLauncher = true,
|
||||
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
||||
public class MainActivity : MauiAppCompatActivity
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
using Android.App;
|
||||
using Android.Runtime;
|
||||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Hosting;
|
||||
|
||||
namespace CustomRenderer.Android
|
||||
{
|
||||
[Application]
|
||||
public class MainApplication : MauiApplication
|
||||
{
|
||||
public MainApplication(IntPtr handle, JniHandleOwnership ownership)
|
||||
: base(handle, ownership)
|
||||
{
|
||||
}
|
||||
|
||||
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
using Microsoft.Maui.Hosting;
|
||||
using Microsoft.Maui.Handlers;
|
||||
using Microsoft.Maui.Controls.Compatibility.Hosting;
|
||||
|
||||
namespace CustomRenderer.Android;
|
||||
|
||||
public static class MauiProgram
|
||||
{
|
||||
public static MauiAppBuilder builder;
|
||||
public static MauiAppBuilder Builder
|
||||
{
|
||||
get
|
||||
{
|
||||
if (builder == null)
|
||||
{
|
||||
builder = MauiApp.CreateBuilder();
|
||||
}
|
||||
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
public static MauiApp CreateMauiApp()
|
||||
{
|
||||
var builder = Builder;
|
||||
builder
|
||||
.UseMauiCompatibility()
|
||||
.UseMauiApp<App>();
|
||||
|
||||
builder.ConfigureMauiHandlers(handlers => {
|
||||
#if ANDROID
|
||||
handlers.AddCompatibilityRenderer(typeof(MyEntry), typeof(CustomRenderer.Android.MyEntryRenderer));
|
||||
#endif
|
||||
});
|
||||
|
||||
return builder.Build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
using CustomRenderer;
|
||||
using CustomRenderer.Android;
|
||||
using Android.Content;
|
||||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Controls;
|
||||
using Microsoft.Maui.Controls.Compatibility.Platform.Android;
|
||||
using Microsoft.Maui.Controls.Platform;
|
||||
|
||||
|
||||
namespace CustomRenderer.Android
|
||||
{
|
||||
class MyEntryRenderer : EntryRenderer
|
||||
{
|
||||
public MyEntryRenderer(Context context) : base(context)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
|
||||
{
|
||||
base.OnElementChanged(e);
|
||||
|
||||
if (Control != null)
|
||||
{
|
||||
Control.SetBackgroundColor(global::Android.Graphics.Color.LightGreen);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="CustomRenderer.Android">
|
||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
|
||||
<application android:label="CustomRenderer.Android">
|
||||
</application>
|
||||
</manifest>
|
|
@ -0,0 +1,44 @@
|
|||
Images, layout descriptions, binary blobs and string dictionaries can be included
|
||||
in your application as resource files. Various Android APIs are designed to
|
||||
operate on the resource IDs instead of dealing with images, strings or binary blobs
|
||||
directly.
|
||||
|
||||
For example, a sample Android app that contains a user interface layout (main.axml),
|
||||
an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
|
||||
would keep its resources in the "Resources" directory of the application:
|
||||
|
||||
Resources/
|
||||
drawable/
|
||||
icon.png
|
||||
|
||||
layout/
|
||||
main.axml
|
||||
|
||||
values/
|
||||
strings.xml
|
||||
|
||||
In order to get the build system to recognize Android resources, set the build action to
|
||||
"AndroidResource". The native Android APIs do not operate directly with filenames, but
|
||||
instead operate on resource IDs. When you compile an Android application that uses resources,
|
||||
the build system will package the resources for distribution and generate a class called "R"
|
||||
(this is an Android convention) that contains the tokens for each one of the resources
|
||||
included. For example, for the above Resources layout, this is what the R class would expose:
|
||||
|
||||
public class R {
|
||||
public class drawable {
|
||||
public const int icon = 0x123;
|
||||
}
|
||||
|
||||
public class layout {
|
||||
public const int main = 0x456;
|
||||
}
|
||||
|
||||
public class strings {
|
||||
public const int first_string = 0xabc;
|
||||
public const int second_string = 0xbcd;
|
||||
}
|
||||
}
|
||||
|
||||
You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
|
||||
to reference the layout/main.axml file, or R.strings.first_string to reference the first
|
||||
string in the dictionary file values/strings.xml.
|
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/Android/Resources/drawable/Icon.png
Executable file
После Ширина: | Высота: | Размер: 5.5 KiB |
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
>
|
||||
<Button
|
||||
android:id="@+id/myButton"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/hello"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="hello">Hello World, Click Me!</string>
|
||||
<string name="app_name">CustomRenderer.Android.Android</string>
|
||||
</resources>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="launcher_background">#FFFFFF</color>
|
||||
<color name="colorPrimary">#3F51B5</color>
|
||||
<color name="colorPrimaryDark">#303F9F</color>
|
||||
<color name="colorAccent">#FF4081</color>
|
||||
</resources>
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="MainTheme" parent="MainTheme.Base">
|
||||
</style>
|
||||
<!-- Base theme applied no matter what API -->
|
||||
<style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
|
||||
<item name="windowNoTitle">true</item>
|
||||
<!--We will be using the toolbar so no need to show ActionBar-->
|
||||
<item name="windowActionBar">false</item>
|
||||
<!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette -->
|
||||
<!-- colorPrimary is used for the default action bar background -->
|
||||
<item name="colorPrimary">#2196F3</item>
|
||||
<!-- colorPrimaryDark is used for the status bar -->
|
||||
<item name="colorPrimaryDark">#1976D2</item>
|
||||
<!-- colorAccent is used as the default value for colorControlActivated
|
||||
which is used to tint widgets -->
|
||||
<item name="colorAccent">#FF4081</item>
|
||||
<!-- You can also set colorControlNormal, colorControlActivated
|
||||
colorControlHighlight and colorSwitchThumbNormal. -->
|
||||
<item name="windowActionModeOverlay">true</item>
|
||||
<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
|
||||
</style>
|
||||
<style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
|
||||
<item name="colorAccent">#FF4081</item>
|
||||
</style>
|
||||
</resources>
|
|
@ -0,0 +1,327 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.29920.165
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomRenderer", "CustomRenderer\CustomRenderer.csproj", "{1110E45B-B906-423F-9AA4-1043B491B5E4}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomRenderer.iOS", "iOS\CustomRenderer.iOS.csproj", "{E5EEAD23-AE29-4405-B806-4FA61A47FE12}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomRenderer.Android", "Android\CustomRenderer.Android.csproj", "{D38C1B01-95C2-4A98-8D11-D95B02875B29}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||
Ad-Hoc|ARM = Ad-Hoc|ARM
|
||||
Ad-Hoc|iPhone = Ad-Hoc|iPhone
|
||||
Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator
|
||||
Ad-Hoc|x64 = Ad-Hoc|x64
|
||||
Ad-Hoc|x86 = Ad-Hoc|x86
|
||||
AppStore|Any CPU = AppStore|Any CPU
|
||||
AppStore|ARM = AppStore|ARM
|
||||
AppStore|iPhone = AppStore|iPhone
|
||||
AppStore|iPhoneSimulator = AppStore|iPhoneSimulator
|
||||
AppStore|x64 = AppStore|x64
|
||||
AppStore|x86 = AppStore|x86
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|iPhone = Debug|iPhone
|
||||
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|iPhone = Release|iPhone
|
||||
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|ARM.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|x64.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Ad-Hoc|x86.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|ARM.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|ARM.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|ARM.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|iPhone.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|x64.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|x64.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|x64.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|x86.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|x86.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.AppStore|x86.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|x64.Deploy.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|x86.Build.0 = Release|Any CPU
|
||||
{1110E45B-B906-423F-9AA4-1043B491B5E4}.Release|x86.Deploy.0 = Release|Any CPU
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|Any CPU.Build.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|Any CPU.Deploy.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|ARM.Build.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|ARM.Deploy.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|iPhone.Deploy.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Ad-Hoc|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|x64.Build.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|x64.Deploy.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|x86.Build.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Ad-Hoc|x86.Deploy.0 = Ad-Hoc|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|Any CPU.Build.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|Any CPU.Deploy.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|ARM.ActiveCfg = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|ARM.Build.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|ARM.Deploy.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|iPhone.ActiveCfg = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|iPhone.Build.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|iPhone.Deploy.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|iPhoneSimulator.Deploy.0 = AppStore|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|x64.ActiveCfg = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|x64.Build.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|x64.Deploy.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|x86.ActiveCfg = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|x86.Build.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.AppStore|x86.Deploy.0 = AppStore|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|Any CPU.Deploy.0 = Debug|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|ARM.ActiveCfg = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|ARM.Build.0 = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|ARM.Deploy.0 = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|iPhone.Deploy.0 = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|iPhoneSimulator.Deploy.0 = Debug|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|x64.ActiveCfg = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|x64.Build.0 = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|x64.Deploy.0 = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|x86.ActiveCfg = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|x86.Build.0 = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Debug|x86.Deploy.0 = Debug|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|Any CPU.ActiveCfg = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|Any CPU.Build.0 = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|Any CPU.Deploy.0 = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|ARM.ActiveCfg = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|ARM.Build.0 = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|ARM.Deploy.0 = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|iPhone.Build.0 = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|iPhone.Deploy.0 = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|iPhoneSimulator.Deploy.0 = Release|iPhoneSimulator
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|x64.ActiveCfg = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|x64.Build.0 = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|x64.Deploy.0 = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|x86.ActiveCfg = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|x86.Build.0 = Release|iPhone
|
||||
{E5EEAD23-AE29-4405-B806-4FA61A47FE12}.Release|x86.Deploy.0 = Release|iPhone
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|ARM.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|x64.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|x64.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|x86.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Ad-Hoc|x86.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|Any CPU.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|ARM.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|ARM.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|ARM.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|iPhone.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|iPhone.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|iPhone.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|x64.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|x64.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|x64.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|x86.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|x86.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.AppStore|x86.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|ARM.Deploy.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|iPhone.Deploy.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|x64.Deploy.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Debug|x86.Deploy.0 = Debug|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|ARM.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|iPhone.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|x64.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|x64.Deploy.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|x86.Build.0 = Release|Any CPU
|
||||
{D38C1B01-95C2-4A98-8D11-D95B02875B29}.Release|x86.Deploy.0 = Release|Any CPU
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|Any CPU.ActiveCfg = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|Any CPU.Build.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|Any CPU.Deploy.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|ARM.ActiveCfg = Release|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|ARM.Build.0 = Release|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|ARM.Deploy.0 = Release|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|iPhone.ActiveCfg = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|iPhone.Build.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|iPhone.Deploy.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|x64.ActiveCfg = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|x64.Build.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|x64.Deploy.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|x86.ActiveCfg = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|x86.Build.0 = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Ad-Hoc|x86.Deploy.0 = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|Any CPU.ActiveCfg = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|Any CPU.Build.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|Any CPU.Deploy.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|ARM.ActiveCfg = Release|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|ARM.Build.0 = Release|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|ARM.Deploy.0 = Release|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|iPhone.ActiveCfg = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|iPhone.Build.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|iPhone.Deploy.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|iPhoneSimulator.ActiveCfg = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|iPhoneSimulator.Build.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|iPhoneSimulator.Deploy.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|x64.ActiveCfg = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|x64.Build.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|x64.Deploy.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|x86.ActiveCfg = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|x86.Build.0 = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.AppStore|x86.Deploy.0 = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|Any CPU.Build.0 = Debug|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|Any CPU.Deploy.0 = Debug|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|iPhone.ActiveCfg = Debug|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|x64.Build.0 = Debug|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|x86.Build.0 = Debug|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|Any CPU.Build.0 = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|Any CPU.Deploy.0 = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|ARM.Build.0 = Release|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|iPhone.ActiveCfg = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|iPhoneSimulator.ActiveCfg = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|x64.ActiveCfg = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|x64.Build.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|x64.Deploy.0 = Release|x64
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|x86.ActiveCfg = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|x86.Build.0 = Release|x86
|
||||
{1F98059B-BB21-4901-A5E2-B022A23F635D}.Release|x86.Deploy.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {EC4F24DB-DBAA-40F7-8977-E829DBF6C0B0}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,16 @@
|
|||
using System;
|
||||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Controls;
|
||||
|
||||
namespace CustomRenderer
|
||||
{
|
||||
public class App : Application
|
||||
{
|
||||
public App ()
|
||||
{
|
||||
//MainPage = new MainPage (); // uncomment this to test the code-behind version
|
||||
MainPage = new MainPageXaml ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<UseMaui>true</UseMaui>
|
||||
<TargetFrameworks>net8.0-android;net8.0-ios</TargetFrameworks>
|
||||
<OutputType>Library</OutputType>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="MainPageXaml.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.410601">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
</Project>
|
|
@ -0,0 +1,26 @@
|
|||
using System;
|
||||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Controls;
|
||||
|
||||
namespace CustomRenderer
|
||||
{
|
||||
public class MainPage : ContentPage
|
||||
{
|
||||
public MainPage ()
|
||||
{
|
||||
Content = new StackLayout {
|
||||
Children = {
|
||||
new Label {
|
||||
Text = "Hello, Custom Renderer !",
|
||||
},
|
||||
new MyEntry {
|
||||
Text = "In Shared Code",
|
||||
}
|
||||
},
|
||||
VerticalOptions = LayoutOptions.Center,
|
||||
HorizontalOptions = LayoutOptions.Center,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<ContentPage
|
||||
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:CustomRenderer;assembly=CustomRenderer"
|
||||
x:Class="CustomRenderer.MainPageXaml">
|
||||
<StackLayout VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand">
|
||||
<Label Text="Hello, Custom Renderer!" />
|
||||
<local:MyEntry Text="In Shared Code" />
|
||||
</StackLayout>
|
||||
</ContentPage>
|
|
@ -0,0 +1,16 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Controls;
|
||||
|
||||
namespace CustomRenderer
|
||||
{
|
||||
public partial class MainPageXaml : ContentPage
|
||||
{
|
||||
public MainPageXaml ()
|
||||
{
|
||||
InitializeComponent ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
using Microsoft.Maui.Controls.Compatibility.Hosting;
|
||||
|
||||
namespace CustomRenderer;
|
||||
|
||||
public static class MauiProgram
|
||||
{
|
||||
public static MauiApp CreateMauiApp()
|
||||
{
|
||||
var builder = MauiApp.CreateBuilder();
|
||||
builder
|
||||
.UseMauiCompatibility()
|
||||
.UseMauiApp<App>();
|
||||
|
||||
return builder.Build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Controls;
|
||||
|
||||
namespace CustomRenderer
|
||||
{
|
||||
public class MyEntry : Entry
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
name: Xamarin.Forms - Entry Custom Renderer
|
||||
description: "Demonstrates a custom renderer for the Entry control, enabling developers to override the default native rendering #customrenderer"
|
||||
page_type: sample
|
||||
languages:
|
||||
- csharp
|
||||
products:
|
||||
- xamarin
|
||||
urlFragment: customrenderers-entry
|
||||
---
|
||||
# Entry Custom Renderer
|
||||
|
||||
This sample demonstrates a custom renderer for the `Entry` control, enabling developers to override the default native rendering with their own platform-specific customization.
|
||||
|
||||
For more information about this sample see [Customizing an Entry](https://docs.microsoft.com/xamarin/xamarin-forms/app-fundamentals/custom-renderer/entry).
|
||||
|
||||
![Entry Custom Renderer application screenshot](Screenshots/01Android.png "Entry Custom Renderer application screenshot")
|
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/Screenshots/01Android.png
Executable file
После Ширина: | Высота: | Размер: 152 KiB |
После Ширина: | Высота: | Размер: 9.2 KiB |
После Ширина: | Высота: | Размер: 56 KiB |
После Ширина: | Высота: | Размер: 211 KiB |
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Controls;
|
||||
using Microsoft.Maui.Hosting;
|
||||
|
||||
namespace CustomRenderer.iOS
|
||||
{
|
||||
[Register ("AppDelegate")]
|
||||
public partial class AppDelegate : MauiUIApplicationDelegate
|
||||
{
|
||||
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<UseMaui>true</UseMaui>
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">14.4</SupportedOSPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<MtouchUseRefCounting>true</MtouchUseRefCounting>
|
||||
<MtouchI18n />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
|
||||
<ConsolePause>false</ConsolePause>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
<IpaPackageName />
|
||||
<MtouchUseRefCounting>true</MtouchUseRefCounting>
|
||||
<MtouchI18n />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<CodesignKey>iPhone Developer</CodesignKey>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Ad-Hoc|iPhone' ">
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<BuildIpa>true</BuildIpa>
|
||||
<CodesignProvision>Automatic:AdHoc</CodesignProvision>
|
||||
<CodesignKey>iPhone Distribution</CodesignKey>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'AppStore|iPhone' ">
|
||||
<ConsolePause>false</ConsolePause>
|
||||
<CodesignProvision>Automatic:AppStore</CodesignProvision>
|
||||
<CodesignKey>iPhone Distribution</CodesignKey>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0-ios</TargetFramework>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CustomRenderer\CustomRenderer.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.410601">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>CustomRenderer.iOS</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.your-company.CustomRenderer.iOS</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true />
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,21 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
|
||||
namespace CustomRenderer.iOS
|
||||
{
|
||||
public class Application
|
||||
{
|
||||
// This is the main entry point of the application.
|
||||
static void Main (string[] args)
|
||||
{
|
||||
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||
// you can specify it here.
|
||||
UIApplication.Main (args, null, "AppDelegate");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
using Microsoft.Maui.Hosting;
|
||||
using Microsoft.Maui.Handlers;
|
||||
using Microsoft.Maui.Controls.Compatibility.Hosting;
|
||||
using Microsoft.Maui.Controls.Hosting;
|
||||
|
||||
namespace CustomRenderer.iOS;
|
||||
|
||||
public static class MauiProgram
|
||||
{
|
||||
public static MauiAppBuilder builder;
|
||||
public static MauiAppBuilder Builder
|
||||
{
|
||||
get
|
||||
{
|
||||
if (builder == null)
|
||||
{
|
||||
builder = MauiApp.CreateBuilder();
|
||||
}
|
||||
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
public static MauiApp CreateMauiApp()
|
||||
{
|
||||
var builder = Builder;
|
||||
builder
|
||||
.UseMauiCompatibility()
|
||||
.UseMauiApp<App>();
|
||||
|
||||
builder.ConfigureMauiHandlers(handlers => {
|
||||
handlers.AddCompatibilityRenderer(typeof(CustomRenderer.MyEntry), typeof(CustomRenderer.iOS.MyEntryRenderer));
|
||||
});
|
||||
|
||||
return builder.Build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
using UIKit;
|
||||
using CustomRenderer;
|
||||
using CustomRenderer.iOS;
|
||||
using Microsoft.Maui;
|
||||
using Microsoft.Maui.Controls;
|
||||
using Microsoft.Maui.Controls.Compatibility.Platform.iOS;
|
||||
using Microsoft.Maui.Controls.Platform;
|
||||
|
||||
namespace CustomRenderer.iOS
|
||||
{
|
||||
public class MyEntryRenderer : EntryRenderer
|
||||
{
|
||||
protected override void OnElementChanged (ElementChangedEventArgs<Entry> e)
|
||||
{
|
||||
base.OnElementChanged (e);
|
||||
|
||||
if (Control != null) {
|
||||
// do whatever you want to the UITextField here!
|
||||
Control.BackgroundColor = UIColor.FromRGB (204, 153, 255);
|
||||
Control.BorderStyle = UITextBorderStyle.Line;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Default-568h@2x.png
Executable file
После Ширина: | Высота: | Размер: 61 KiB |
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Default.png
Executable file
После Ширина: | Высота: | Размер: 14 KiB |
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Default@2x.png
Executable file
После Ширина: | Высота: | Размер: 38 KiB |
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Icon-60@2x.png
Executable file
После Ширина: | Высота: | Размер: 7.0 KiB |
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Icon-76.png
Executable file
После Ширина: | Высота: | Размер: 5.5 KiB |
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Icon-76@2x.png
Executable file
После Ширина: | Высота: | Размер: 8.2 KiB |
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Icon-Small-40.png
Executable file
После Ширина: | Высота: | Размер: 4.0 KiB |
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Icon-Small-40@2x.png
Executable file
После Ширина: | Высота: | Размер: 5.5 KiB |
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Icon-Small.png
Executable file
После Ширина: | Высота: | Размер: 3.6 KiB |
Двоичные данные
Upgrading/CustomRenderer/MultiProject/Entry/iOS/Resources/Icon-Small@2x.png
Executable file
После Ширина: | Высота: | Размер: 4.7 KiB |
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
name: Using Custom Renderers in .NET MAUI with multiple projects
|
||||
description: "Sample for using custom renderers in .NET MAUI."
|
||||
page_type: sample
|
||||
languages:
|
||||
- csharp
|
||||
- xaml
|
||||
products:
|
||||
- dotnet-maui
|
||||
- dotnet-core
|
||||
urlFragment: custom-renderers
|
||||
---
|
||||
|
||||
# Custom Renderers with Multiple Projects
|
||||
|
||||
When upgrading from Xamarin.Forms to .NET MAUI, custom renderers can be left in the platform projects. To register them, add a `MauiProgram.cs` file to each project and apply the platform specific code there. This sample demonstrates this approach.
|
||||
|