我有一个ImageView,我做了一个简单的比例动画.非常标准的代码.
我的scale_up.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:fromXScale="1"
android:fromYScale="1"
android:toXScale="1.2"
android:toYScale="1.2"
android:duration="175"/>
</set>
Run Code Online (Sandbox Code Playgroud)
我的动画代码:
Animation a = AnimationUtils.loadAnimation(this, R.anim.scale_up);
((ImageView) findViewById(R.id.circle_image)).startAnimation(a);
Run Code Online (Sandbox Code Playgroud)
问题:
当图像缩放时,它不会从中心缩放,而是从左上角缩放.换句话说,图像的缩放版本与中心不具有相同的点,但它具有相同的左上角点.这是一个解释我的意思的链接.第一个图像是动画如何缩放,第二个图像是我希望它如何缩放.它应该保持中心点相同.我已尝试在图像上设置重力,在容器上,左对齐或右对齐,它始终按比例缩放.我正在使用RelativeLayout作为主屏幕,ImageView位于另一个RelativeLayout,但我尝试了其他布局,没有改变.
我有ItemsControl绑定到Student类型的集合.在ItemTemplate中我有一个TextBox,它使用IValueConverter来做一些自定义计算和逻辑.我想将实际的Student对象传递给值转换器,而不是它的属性.我怎样才能做到这一点?这是我的代码示例.
<ItemsControl ItemsSource="{Binding StudentList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding ????, Converter={StaticResource MyConverter}}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
在代码我有这个
public class MyValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// I want 'value' to be of type Student.
return null;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用VS2010和WiX 3.6来创建MSI包并将它们捆绑到Bootstrapper设置中.这是我的Boostrapper代码.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle Name="" Version="" Manufacturer="" UpgradeCode="">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<MsiPackage SourceFile="Package1.msi">
<MsiProperty Name="PARAM1" Value="[PARAM1]" />
<MsiProperty Name="PARAM2" Value="[PARAM2]" />
</MsiPackage>
<MsiPackage SourceFile="Package2.msi">
<MsiProperty Name="PARAM1" Value="[PARAM1]" />
<MsiProperty Name="PARAM2" Value="[PARAM2]" />
</MsiPackage>
</Chain>
</Bundle>
</Wix>
Run Code Online (Sandbox Code Playgroud)
MSI包必须具有指定的参数才能运行.通常,我会打电话"Packag21.msi PARAM1=1 PARAM2=2".在我构建项目之后,我尝试以相同的方式将参数传递给我的Bootstrapper.exe Bootstrapper.exe PARAM1=1 PARAM2=2,但它似乎没有将它们传递给MSI.安装与缺少的参数条件挂起.
有没有办法将参数从exe传递给msi?
可能重复:
.NET中类型的自动生成GUID是否一致?
我想Type用作关键字典,但我宁愿使用完整的类型名称或Type.GUID.Type.GUID这项任务的可靠性和正确性如何?
你能依靠System.Type.GUID稳定吗?
稳定我的意思是它将在编译中为相同类型生成相同的值.经验证据表明情况就是这样,以下因素决定了一种类型的指导:
- 输入名称(包括命名空间)
- 程序集名称
- 大会公钥
反映到系统中,事实证明System.Type.GUID最终被转换为对System.RuntimeType.GetGUID的调用,这是直接在运行时本身实现的可怕的InternallCall方法之一.
我想知道...
我已经编写了我的控件并尝试传递参数以进行额外的初始化但是有错误=((类型Ajustcontrol无法使用名称attribut).如何正确传递数据?这是我在c#中的代码:
public AjustControl(BaoC input)
{
InitializeComponent();
populateAdjustControl(input);
}
Run Code Online (Sandbox Code Playgroud)
错误:错误15类型'AjustControl'不能具有Name属性.没有默认构造函数的值类型和类型可以用作ResourceDictionary中的项.第470行位置26. D:\ Prj\aaa\MainWindow.xaml 470 26 Studio
谁能告诉我如何intentservice在Android中停止?
如果我stopservice用来停止一个intentservice,它不起作用.
我浏览了这个网站,但是没有人给出这个问题的明确答案.
我的.net项目中有一个要求,我需要从集合中选择一个项目,每个项目都有一个权重(整数从1到10)分配给它.我需要一个随机生成器来考虑这个权重,即权重越高,选择对象的机会就越多.虽然算法描述也很好,但是.net中的任何代码示例都很受欢迎.
编辑:快速复制/粘贴C#代码,以防有人偶然发现.
class RandomWeightedSelector<T>
{
private List<T> items = new List<T>();
public void Add(T item, uint weight = 1)
{
for (int i = 0; i < weight; i++)
items.Add(item);
}
public T GetRandom()
{
return items[new Random().Next(0, items.Count)];
}
}
Run Code Online (Sandbox Code Playgroud) 我在 WPF 窗口中有一个 Frame 元素,并且应用程序中的所有内容都是使用 Frame.Navigate() 加载的。但是,当导航到新页面时,默认情况下会播放该声音,它与 Internet Explorer 中播放的声音相同。有什么方法可以从应用程序中关闭此声音吗?我不想关闭操作系统级别控制面板中的设置。谢谢。
编辑:我想唯一的方法是在操作系统级别改变声音,这可以在注册表中完成。这对我来说是可以接受的解决方案。
http://social.msdn.microsoft.com/forums/en-us/vbgeneral/thread/843677F4-8F0B-46CB-986C-92E8042D0707
我想做这个
List<ushort> uList = new List<ushort>() { 1, 2, 3 };
List<short> sList = uList.Cast<short>().ToList();
Run Code Online (Sandbox Code Playgroud)
但我得到InvalidCastException"指定的强制转换无效."
如何快速高效地投射上述系列?
谢谢.
我正在尝试在WPF应用程序中使用自定义控件,并且使用StringFormat绑定时遇到一些问题.
这个问题很容易重现.首先,让我们创建一个WPF应用程序并将其命名为"TemplateBindingTest".在那里,添加一个只有一个属性(Text)的自定义ViewModel,并将其分配给Window的DataContext.将Text属性设置为"Hello World!".
现在,向解决方案添加自定义控件.自定义控件尽可能简单:
using System.Windows;
using System.Windows.Controls;
namespace TemplateBindingTest
{
public class CustomControl : Control
{
static CustomControl()
{
TextProperty = DependencyProperty.Register(
"Text",
typeof(object),
typeof(CustomControl),
new FrameworkPropertyMetadata(null));
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomControl), new FrameworkPropertyMetadata(typeof(CustomControl)));
}
public static DependencyProperty TextProperty;
public object Text
{
get
{
return this.GetValue(TextProperty);
}
set
{
SetValue(TextProperty, value);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
将自定义控件添加到解决方案时,Visual Studio会自动创建一个带有generic.xaml文件的Themes文件夹.我们将控件的默认样式放在那里:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TemplateBindingTest">
<Style TargetType="{x:Type local:CustomControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControl}">
<TextBlock Text="{TemplateBinding Text}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
现在,只需将控件添加到窗口,并使用StringFormat在Text属性上设置绑定.还要添加一个简单的TextBlock以确保绑定语法正确:
<Window x:Class="TemplateBindingTest.MainWindow" …Run Code Online (Sandbox Code Playgroud)