我在 Android Studio 中构建我的测试应用程序,然后在事件日志中它说:
Android Studio 正在使用此 JDK 位置:C:\Program Files\Android\Android Studio\jre,这与 Gradle 默认使用的不同:C:\Program Files (x86)\Java\jdk1.8.0_181 使用不同的位置可能会产生如果在使用 Android Studio 时从命令行运行 Gradle 任务,则需要多个 Gradle 守护进程。
然后给出了这些选项:
- 更多信息...
- 设置 Android Studio 使用与 Gradle 相同的 JDK 并同步
- 不再显示此警告
我点击了:
设置 Android Studio 使用与 Gradle 相同的 JDK 并同步
然后我的应用程序不想再构建了。
这是错误:
Gradle 同步失败:无法启动守护进程。
此问题可能是由守护程序的错误配置引起的。例如,使用了无法识别的 jvm 选项。
请参阅https://docs.gradle.org/5.4.1/userguide/gradle_daemon.html上有关守护程序的用户手册章节进程命令行:C:\Program Files (x86)\Java\jdk1.8.0_181\bin\java.exe -Xmx1536m -Dfile.encoding=windows-1252 -Duser.country=ZA -Duser.language=en -Duser。变体 -cp C:\Users\{MyUserName}\.gradle\wrapper\dists\gradle-5.4.1-all\3221gyojl5jsh0helicew7rwx\gradle-5.4.1\lib\gradle-launcher-5.4.1.jar org.gradle。启动器.daemon.bootstrap.GradleDaemon 5.4.1
请阅读以下过程输出以了解更多信息:
VM 初始化期间发生错误无法为 1572864KB 对象堆保留足够的空间 请查阅 IDE 日志以获取更多详细信息(帮助 | 显示日志)(16 秒 166 毫秒)
我检查了事件日志: …
我在App.xaml.cs中有这个代码:
protected override void OnStartup(StartupEventArgs e)
{
EventManager.RegisterClassHandler(typeof(TextBox), TextBox.TextChangedEvent, new RoutedEventHandler(TextBox_TextChangedEvent));
}
private void TextBox_TextChangedEvent(object sender, RoutedEventArgs e)
{
// Works
}
Run Code Online (Sandbox Code Playgroud)
我想为InitializedEvent做类似的事情.
这是我失败的尝试:
protected override void OnStartup(StartupEventArgs e)
{
EventManager.RegisterClassHandler(typeof(FrameworkElement), FrameworkElement.InitializedEvent, new EventHandler(FrameworkElement_InitializedEvent));
}
private void FrameworkElement_InitializedEvent(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
InitializedEvent是否在其他地方?
这甚至可能吗?
我尝试过使用LoadedEvent:
protected override void OnStartup(StartupEventArgs e)
{
EventManager.RegisterClassHandler(typeof(FrameworkElement), FrameworkElement.LoadedEvent, new RoutedEventHandler(FrameworkElement_LoadedEvent));
}
private void FrameworkElement_LoadedEvent(object sender, RoutedEventArgs e)
{
// Fires only for Windows
}
Run Code Online (Sandbox Code Playgroud)
它只针对Windows而不是Windows内的控件触发.我确实意识到了; 当我将一个加载的事件添加到我在Window中的Label时; FrameworkElement_LoadedEvent即使我正常加载的事件(我专门为Label制作)是空的,全局也会为该标签触发.我也试过这些:
EventManager.RegisterClassHandler(typeof(Button), Button.LoadedEvent, new RoutedEventHandler(Button_LoadedEvent)); …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的XAML按钮:
<Button x:Name="buttonOK" Content="OK" />
Run Code Online (Sandbox Code Playgroud)
我没有附加XAML样式,也没有资源字典样式.没有外在的东西造型我的按钮,这很好; 这就是我想要的.
我现在想要在后面的代码中更改该按钮的RadiusX和RadiusY,因为我想要一个带有圆边的按钮.我知道System.Windows.Controls.Button没有这些属性,但我知道一个WPF矩形.
我不知道这是否正确; 但WPF按钮控件是由其他控件组成的?对?就像一个矩形和一个文本块或标签,通过设置Button.Content,你实际上是在改变按钮的内部标签的内容.我不确定我的想法有多天真.
底线是我想做这样的事情:
buttonOK.InnerRectangle.RadiusX = 5;
buttonOK.InnerRectangle.RadiusY = 5;
Run Code Online (Sandbox Code Playgroud)
我想在代码中使用它,没有XAML,因为我在不同的XAML文件中有很多按钮,我想通过在代码中调用一个方法而不改变每个XAML文件来绕过它们的边缘.并非所有XAML文件中的所有按钮,只是某些按钮.
我已经在我的所有窗口和用户控件中调用了一个方法,我只想添加圆形边缘样式的按钮到该方法,然后它不会导致繁琐的代码.
当我输入Alt+ 1我回来☺我想在代码中使用一些神奇的方法来获取字符串中的☺字符.
像这样的东西:
string smiley = AltCodes.GetAltCodeCharacter(1).ToString();
// Display the Smiley
richTextBoxHappy.Text = smiley;
Run Code Online (Sandbox Code Playgroud)
然后在富文本框中应该有这样的: ?