我想设置一个编辑框的最大宽度.所以我创建了这个小布局:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxWidth="150dp" >
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,无论如何,盒子可能超过150 dp.android:maxWidth="150dp"在EditText意志中会给出相同的结果.我已经阅读(maxWidth不能与fill_parent一起使用)将max-和min宽度设置为相同的大小应解决它:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:maxWidth="50dp"
android:minWidth="50dp" />
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
我在这里找到了解决问题的方法:
在ViewGroup上设置最大宽度
这很好用.但我想这个maxWidth属性就是我的理由.该如何使用?或者有这方面的文件吗?我花了好几个小时来处理这个问题,但仍然不明白如何使用这个简单的属性.
我正在使用Windows桌面和Windows商店的应用程序,我可能会在将来添加Windows Phone.我在库中拥有大部分逻辑,并为不同平台创建不同的GUI.
我想本地化我的应用程序,并希望在平台之间共享字符串资源.但是我该怎么做?
对于Windows桌面,最常见的方法似乎是使用resx文件.这是一个简短的例子:
http://compositeextensions.codeplex.com/discussions/52910
对于Windows商店应用程序使用resw文件,这是一个例子:
http://msdn.microsoft.com/en-us/library/windows/apps/hh965326.aspx
这两个解决方案都是特定于平台的,我不喜欢:-(.我真的希望将我的所有字符串都放在一个文件/语言中,并且能够在所有平台上使用它.对此有什么解决方案吗?
2014年2月17日更新:据我所知,resx和resw文件的格式相同.Windows商店应用程序中缺少的是没有为resw文件生成类文件.如果我能得到这样的文件,我的问题就会得到解决.然后我可以在我的视图模型中放置该类的实例,并通过属性访问所有文本.
在WPF应用程序中生成的类文件几乎可以工作.问题是这一行看起来像这样:
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ResxTest.Properties.StringTest", typeof(StringTest).Assembly);
Run Code Online (Sandbox Code Playgroud)
要编译它,我需要将其更改为:
global::System.Resources.ResourceManager temp = new System.Resources.ResourceManager("ResxTest.Properties.StringTest", typeof(StringTest).GetTypeInfo().Assembly);
Run Code Online (Sandbox Code Playgroud)
但是无法在我的Windows应用商店应用程序中加载资源ResxTest.Properties.StringTest.出于某种原因,我需要将我的资源重命名为Resource.resw并使用名称"Resource"加载它.我尝试了所有类型的名称,但这是唯一有效的名称.使用名称MyApplication.MyResource永远不会工作.
我不确定我是否走在正确的轨道上.我几乎是如此绝望,我将自己的解决方案转换为我需要的所有字符串的XML文件到一个巨大的类,我可以用来获取没有任何资源文件的所有字符串.但我认为那是丑陋和欺骗所以我希望有人能给我一个更好的主意:-).
2014年2月24日更新:我错了!使用Portable类库可以很好地工作.如果我使用它,我可以在我的视图模型中放置一个自动生成的C#类的实例,并访问该对象的所有字符串.
但是,如果我使用普通的库,Windows Store应用程序中的东西不能正常工作(WPF很好).我试图从一个可工作的类库中将所有文件复制到Windows商店类库.当我尝试创建自动生成的文件的实例时,我总是得到:
mscorlib.dll中出现"System.Resources.MissingManifestResourceException"类型的异常,但未在用户代码中处理
附加信息:无法为包中的资源文件"MetroLib.StringResources"加载资源...
非常烦人,因为我使用的是Visual Studio的快速版本,其中没有可移植的类库.所以我可能会开发自己的解决方案来从资源文件生成类(这也给了我一些其他的好处).但我仍然很好奇我做错了什么.
wpf localization embedded-resource windows-phone windows-runtime
在Google Play中,现在可以为手机,7英寸和10英寸平板电脑设置屏幕截图.我试图在我的一个应用程序上从平板电脑上传截图.我目前为电话列出的截图.
在我为7英寸和10英寸平板电脑上传了一个屏幕截图后,我得到以下结果:
在我的手机上首先列出手机图像,然后列出平板电脑图像.在我的7英寸平板电脑上,我首先看到平板电脑图像,然后是手机图像.
文档没有说明每个屏幕尺寸或哪个订单可见的图像,所以这可能是预期的结果:-).
有谁知道这背后的逻辑?我想更好地控制订单.
我可以从与Google Play游戏服务一起使用的Android应用程序重置我的成就/排行榜结果吗?
在Google Play中,我的某个应用会在优化提示时收到此警告:
您的APK需要符合以下条件:使用7英寸平板电脑上的可用屏幕空间.
我已经阅读了文档,但没有看到我做错了什么.如果我在开发者控制台中查看APK详细信息,则表示支持4种屏幕布局(小,普通,大,xlarge).
使用-sdk我的清单文件非常简单:
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="17" />
Run Code Online (Sandbox Code Playgroud)
我创建了一个简单的虚拟应用程序,它具有几乎相同的清单文件,并且该应用程序没有收到此警告.我糊涂了 :-).我需要宣布平板电脑支持吗?
我有这个非常简单的 .NET Core 应用程序:
static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
builder.AddAzureKeyVault("https://MyKeyVault.vault.azure.net");
var stopwatch = new Stopwatch();
stopwatch.Start();
var configuration = builder.Build();
var elapsed = stopwatch.Elapsed;
Console.WriteLine($"Elapsed time: {elapsed.TotalSeconds}");
}
Run Code Online (Sandbox Code Playgroud)
csproj 文件如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
我的问题是应用程序需要大约 10 秒才能在附加调试器的情况下执行(在没有调试器的情况下大约需要 5 秒)。如果我使用AddAzureKeyVault删除该行,应用程序将在不到一秒的时间内执行。我知道AddAzureKeyVault …
我在剃刀组件中使用ValidationMessage来显示验证消息,如下所示:
<ValidationMessage For="@(() => ViewModel.CompanyNumber)" />
Run Code Online (Sandbox Code Playgroud)
这将生成此 HTML 代码:
<ValidationMessage For="@(() => ViewModel.CompanyNumber)" />
Run Code Online (Sandbox Code Playgroud)
是否可以更改 CSS 类?我想使用除validation-message. 添加class="myclass"被控制器忽略。我也试过@attributes没有成功。
我最近一直在玩新的Google Play游戏服务.我花了一些时间来设置一切以使示例项目运行.主要是因为做了很多小错误.因此,我写了一份小清单,以便其他人不必经历同样的结果.开发很有趣,配置不是:-).
我知道您可以使用如下命令获取 azure Key Vault 中特定机密的纯文本:
$a = Get-AzureKeyVaultSecret -VaultName MyKeyVaultName -Name "SecretName"
$a.SecretValueText
Run Code Online (Sandbox Code Playgroud)
但是是否可以列出所有秘密和纯文本值?这仅显示秘密值的空白字符串:
Get-AzureKeyVaultSecret -VaultName MyKeyVaultName | Select-Object Name,SecretValueText
Run Code Online (Sandbox Code Playgroud) android ×5
google-play ×3
azure ×2
wpf ×2
.net-core ×1
asp.net-core ×1
blazor ×1
localization ×1
powershell ×1
screenshot ×1
tablet ×1
width ×1