我刚刚开始加速WPF,并希望创建一个可重用的WPF控件.
当我查看在Visual Studio中创建项目的选项时,我看到"WPF用户控件库"和"WPF自定义控件库".我不清楚他们之间的区别是什么,我的谷歌搜索没有找到任何体面的解释.
我想了解它们之间的差异,理想情况下看一些何时使用一个而不是另一个的例子.
我想要完成的是在一个显示的消息文本中有可点击的超链接AlertDialog.虽然AlertDialog实现愉快地强调并着色任何超链接(<a href="...">在传递给的字符串资源中定义Builder.setMessage),但链接不会变得可点击.
我目前使用的代码如下所示:
new AlertDialog.Builder(MainActivity.this).setTitle(
R.string.Title_About).setMessage(
getResources().getText(R.string.about))
.setPositiveButton(android.R.string.ok, null)
.setIcon(R.drawable.icon).show();
Run Code Online (Sandbox Code Playgroud)
我想避免使用一个WebView只显示文本片段.
我知道可以创建自定义UI元素(通过View或特定的UI元素扩展).但是有可能为新创建的UI元素定义新的属性或属性(我的意思是不继承,但是全新定义一些我无法用默认属性或属性处理的特定行为)
例如,我的自定义元素:
<com.tryout.myCustomElement
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Element..."
android:myCustomValue=<someValue>
/>
Run Code Online (Sandbox Code Playgroud)
那么可以定义MyCustomValue吗?
谢谢
我有一些我创建的自定义控件,我在新项目中使用它们.但是,我一直在界面生成器中遇到错误:
Failed to update auto layout status: Failed to load designables from path (null)
Run Code Online (Sandbox Code Playgroud)
要么
Failed to render instance of <control>: Failed to load designables from path (null)
Run Code Online (Sandbox Code Playgroud)
我已经测试了另一个项目中的控件,它们似乎在界面构建器中正确呈现,但我无法让它们在当前项目中工作.导致此错误的原因以及如何解决?
提前致谢...
我写了一个扩展的自定义视图RelativeLayout.我的视图有文本,所以我想使用标准,android:text 而不需要在每次使用自定义视图时指定<declare-styleable>和不使用自定义命名空间xmlns:xxx.
这是我使用自定义视图的xml:
<my.app.StatusBar
android:id="@+id/statusBar"
android:text="this is the title"/>
Run Code Online (Sandbox Code Playgroud)
如何获取属性值?我想我可以得到android:text属性
TypedArray a = context.obtainStyledAttributes(attrs, ???);
Run Code Online (Sandbox Code Playgroud)
但???在这种情况下是什么(在attr.xml中没有样式)?
我一直在阅读有关用户和自定义控件之间差异的一些解释,例如:http: //www.wpftutorial.net/CustomVsUserControl.html
例如,我想创建一个带有2个组合框的数据网格的简单组合,这些组合框负责更改数据网格项目的值.我想为此创建一个特定的控件,因为我将使用它很多次.我想实现后面的逻辑然后在xaml调用中我只需要指定itemsSource.
对于此示例,我应该创建用户控件还是自定义控件?由于我将拥有属性和逻辑,我应该有一个用于此控件的viewmodel吗?
编辑:你知道一些文章在这两个选项之间有明确的概念分离吗?
如何WebView在Android中实现Scroll Listener
我试过这个,但它没有调用我Log.i滚动webview.
package com.example.webview.full.width;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.webkit.WebView;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
public class scorllableWebview extends WebView implements OnScrollListener {
Context ctx;
AttributeSet atrs;
public scorllableWebview(Context context) {
super(context);
ctx = context;
}
public scorllableWebview(Context context, AttributeSet atters){
super(context, atters);
ctx = context;
atrs = atters;
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
Log.i("onScroll", "Called");
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
Log.i("onScrollStateChanged", …Run Code Online (Sandbox Code Playgroud) 我已经制作了一个继承自Literal控件的自定义控件.当我尝试在页面上使用我的控件时,会抛出解析错误.我已将此添加到我的web.config中
<configuration>
<system.web>
<pages>
<controls>
<add tagPrefix="one" namespace="myApplication.Controls"/>
</controls>
</pages>
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我已将此添加到我的页面中
<%@ register namespace="myApplication.Controls" tagprefix="one" %>
Run Code Online (Sandbox Code Playgroud)
这些都没有解决这个问题.我有一个带有一些自定义控件的外部程序集,可以在我的项目中正常工作.作为一种解决方法,如果没有简单的解决方案,我正在考虑将我的自定义控件移动到外部库中.
- 编辑
这是页面代码.
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SignUp.ascx.cs" Inherits="myApplication.Controls.SignUp" %>
<%@ register namespace="myApplication.Controls" tagprefix="one" %>
<div class="in">
<span>
<one:resourceliteral id="lblFirstname" runat="server" resourcekey="FirstName" resourceresolver="ResourceStringResolver.GetResourceString">
</one:resourceliteral>
</span>
<div>
<pl:textbox id="txtFirstName" runat="server"></pl:textbox>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我实际控制的代码
namespace myApplication.Controls
{
public class ResourceLiteral : Literal
{
private ResourceManager rm;
public delegate string dResourceResolver( string label, eLanguage language );
public event dResourceResolver ResourceResolver;
public string ResourceKey { …Run Code Online (Sandbox Code Playgroud) 我想知道我们如何创建一个更大的中心UITabBar,如下图所示?真的很漂亮!!!!

背景
我正在制作一个垂直标签,用于传统的蒙古文字.在我刚刚轮换之前,UILabel但是有一些性能问题和其他复杂问题.现在我正在努力从头开始制作标签.但是,当高度调整时(基于字符串长度),我需要垂直标签来告诉自动布局.
我读过的
我阅读了内在内容大小和视图与内在内容大小文档.但这些更多是关于如何使用它,而不是如何在自定义视图中定义它.
搜索"自定义视图的ios内在大小"只能给我
在Stack Overflow中.这个特殊问题甚至不需要内在的内容大小,因为它们的视图只是标准视图的集合.
我在想什么
我正在尝试的是下面的答案.我正在添加这个Q&A对,这样就不会花费其他人那么长的时间来找到答案,因为它使用了我使用的搜索关键字.
custom-controls ×10
android ×4
ios ×3
wpf ×2
asp.net ×1
attributes ×1
c# ×1
hyperlink ×1
ibdesignable ×1
scrollview ×1
swift ×1
uibutton ×1
uitabbar ×1
viewmodel ×1
webview ×1
wpf-controls ×1
xcode6 ×1