我是WPF的新手,我遇到了一个似乎有点难以解决的问题.基本上我想要一个可扩展但保持正方形(或任何其他任意)宽高比的4x4网格.这实际上看起来相当棘手,这让我感到惊讶,因为我认为这是一个相当普遍的要求.
我从这样的网格定义开始:
<Grid>
<Grid.RowDefinitions>
<Grid.RowDefinition Height="*"/>
<Grid.RowDefinition Height="*"/>
<Grid.RowDefinition Height="*"/>
<Grid.RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<Grid.ColumnDefinition Width="*"/>
<Grid.ColumnDefinition Width="*"/>
<Grid.ColumnDefinition Width="*"/>
<Grid.ColumnDefinition Width="*"/>
</Grid.ColumnDefinition>
...
</Grid>
Run Code Online (Sandbox Code Playgroud)
现在,如果将其设置为拉伸,则可以填充窗口或放入其中的任何容器.行和列是均匀的,但纵横比不固定.
然后我尝试将它放在StackPanel中以使用可用空间.没有帮助.当我记得Viewboxes的时候,最让我感到震惊的是什么.
<StackPanel Orientation="Horizontal">
<Viewbox>
<Grid Height="1000" Width="1000"> <!-- this locks aspect ratio -->
<Grid.RowDefinitions>
<Grid.RowDefinition Height="*"/>
<Grid.RowDefinition Height="*"/>
<Grid.RowDefinition Height="*"/>
<Grid.RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<Grid.ColumnDefinition Width="*"/>
<Grid.ColumnDefinition Width="*"/>
<Grid.ColumnDefinition Width="*"/>
<Grid.ColumnDefinition Width="*"/>
</Grid.ColumnDefinition>
...
</Grid>
</viewbox>
<Label HorizontalAlignment="Stretch">Extra Space</Label>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
现在我的内容会缩放并保持宽高比.问题是,如果窗口不够宽,我的某些网格会离开屏幕.如果是这样的话,我希望能够滚动到它.同样,我可能需要最小尺寸,这也可能导致垂直滚动.
现在我尝试将StackPanel和Grid(单独)放在适当的ScrollViewer容器中,但随后内容不再缩放以适应窗口.它达到了全尺寸,这是不好的.
那我该怎么做呢?我吠叫错了树吗?有更好/更简单的方法吗?
sorted如果列表按O(n)运行排序,给定一个函数返回True ,你会如何描述这种运行时间:
def sort(l):
while not sorted(l): random.shuffle(l)
Run Code Online (Sandbox Code Playgroud)
假设洗牌是完全随机的.
这会用big-O表示法写吗?或者是否有其他方法使用随机组件对算法进行分类?
是否可以像在Python中那样在Perl的正则表达式语法中执行命名组匹配?我总是$n在匹配后将值绑定到专有名称,所以如果可能的话,我会发现在正则表达式中更方便.
Python就像这样:
>>> import re
>>> regex = re.compile(r'(?P<count>\d+)')
>>> match = regex.match('42')
>>> print match.groupdict()
{'count': '42'}
Run Code Online (Sandbox Code Playgroud)
我知道这?P表明它是一个特定于Python的正则表达式功能,但我希望它以不同的方式在Perl中或稍后添加.有没有办法在Perl中以类似的方式获取结果哈希?
我想要计算2个日期时间字段之间的月数.
有没有比获得unix时间戳和除以2 592 000(秒)更好的方法并在MySQL中进行四舍五入?
我今天试图遵循一些指示,并从评论开始
REM In SQLPlus I manually copy in each line and execute it.
Run Code Online (Sandbox Code Playgroud)
那很好,我没有SQLPlus,我有SQLDeveloper.粘贴的行是以下类型:
@\\server\dir\dir\dir\commandfile1.txt;
COMMIT;
Run Code Online (Sandbox Code Playgroud)
...等等.
当我在SQL窗口中尝试它时,它不喜欢它.我手动打开并粘贴在命令中,对此也不满意.(我是否提到我对这个应用程序也不是很好,也不是Oracle,但今天其他所有人都在外面?)那里的文件以如下代码开头:
rem
set echo on
rem
execute procedure_name ('parameter1', 'parameter2');
Run Code Online (Sandbox Code Playgroud)
一个同事确实有SQLPlus,我们一起解决了它.但是,有没有办法让我用SQLDeveloper做到这一点,所以如果他也出局我就不会被卡住?
我有一段C#代码,它按类型将枚举值添加到下拉列表中.它要求在T1为枚举类型的情况下调用它,尽管我不能将其指定为类型约束,因为枚举是特殊情况,这是不可能的.这不是主要问题,因为它仅在内部使用并记录在案.
Description是System.Enum的扩展,它返回枚举值的DescriptionAttribute的值或值的ToString(如果未指定).
因此,我必须在LINQ语句的Cast部分中转换为System.Enum而不是T1,否则说明扩展不可用.
public static void AddEnum<T1>(this System.Web.UI.WebControls.DropDownList me)
{
Type t = Enum.GetUnderlyingType(typeof(T1));
var l = Enum.GetValues(typeof(T1))
.Cast<System.Enum>()
.Select(x => new ListItem(x.Description(),
Convert.ChangeType(x, t)
.ToString()));
me.Items.AddRange(l.ToArray());
}
Run Code Online (Sandbox Code Playgroud)
这很好,适用于Visual Studio 2008s Web开发服务器,但在IIS 6上运行时失败并出现强制转换异常.它以不变的硬编码可枚举作为填充ASP页面的类型参数运行.
System.InvalidCastException:从'%namespace.class + nameofenum%'到'System.Enum'的转换无效.处于System.Linq.Enumerable.d__b0的System.Convert.ChangeType(对象值,类型conversionType,IFormatProvider提供程序)的System.Convert.DefaultToType(IConvertible值,类型targetType,IFormatProvider提供程序),System.Linq处的
1.MoveNext() at System.Linq.Enumerable.<SelectIterator>d__d2.MoveNext().缓冲区1..ctor(IEnumerable1源)在AddEnum [T1]的System.Linq.Enumerable.ToArray [TSource](IEnumerable`1源)(DropDownList me)
(我掩盖的名称空间/类名)
我无法在其他版本的IIS上测试它,但是开发版本与生产系统不匹配似乎很奇怪.有人知道为什么吗?
我有一个mysql表,其中索引的INT列对于90%的行将为0.如果我将这些行更改为使用NULL而不是0,它们是否会被排除在索引之外,使索引缩小约90%?
我有一个静态类,我想在该类的静态方法中将事件作为try catch块的一部分引发.
例如,在这个方法中,我想在catch中引发一个自定义事件.
public static void saveMyMessage(String message)
{
try
{
//Do Database stuff
}
catch (Exception e)
{
//Raise custom event here
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在尝试编写一个控制台应用程序,它只列出sharepoint根目录下的列表数量.
我尝试使用以下代码,但对象SPContext.Current为null.有关如何获取Web对象的任何想法?
SPWeb web = SPContext.Current.Site.OpenWeb("http://localhost") ;
Run Code Online (Sandbox Code Playgroud) 与List <> OrderBy Alphabetical Order类似,我们希望按一个元素排序,然后按另一个元素排序.我们希望实现功能相当于
SELECT * from Table ORDER BY x, y
Run Code Online (Sandbox Code Playgroud)
我们有一个包含许多排序函数的类,我们没有问题按一个元素排序.
例如:
public class MyClass {
public int x;
public int y;
}
List<MyClass> MyList;
public void SortList() {
MyList.Sort( MySortingFunction );
}
Run Code Online (Sandbox Code Playgroud)
我们在列表中有以下内容:
Unsorted Sorted(x) Desired
--------- --------- ---------
ID x y ID x y ID x y
[0] 0 1 [2] 0 2 [0] 0 1
[1] 1 1 [0] 0 1 [2] 0 2
[2] 0 2 [1] 1 1 [1] 1 …Run Code Online (Sandbox Code Playgroud)