我在一个窗口中有一个3列网格,第一列上有一个GridSplitter.我想将第一列的MaxWidth设置为父窗口或页面Width
(或ActualWidth
)的三分之一,如果可能,我更愿意在XAML中执行此操作.
这是在XamlPad(或类似)中使用的一些示例XAML,它显示了我正在做的事情.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="Column1" Width="200"/>
<ColumnDefinition x:Name="Column2" MinWidth="50" />
<ColumnDefinition x:Name="Column3" Width="{ Binding ElementName=Column1, Path=Width }"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Background="Green" />
<GridSplitter Grid.Column="0" Width="5" />
<Label Grid.Column="1" Background="Yellow" />
<Label Grid.Column="2" Background="Red" />
</Grid>
</Page>
Run Code Online (Sandbox Code Playgroud)
如您所见,右列宽度与第一列的宽度绑定,因此当您使用拆分器滑动左列时,右列会执行相同的操作:)如果您将左列向右滑动,最终它会将滑过页面/窗口的一半,然后滑到窗口的右侧,推开第2列和第3列.
我想通过将第1列的MaxWidth设置为窗口宽度的三分之一(或类似的东西)来防止这种情况.我可以很容易地在代码中执行此操作,但如何在"仅限XAML"中执行此操作?
编辑: David Schmitt建议使用SharedSizeGroup而不是绑定,这是一个很好的建议.我的示例代码如下所示:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Grid IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="Column1" SharedSizeGroup="ColWidth" Width="40"/>
<ColumnDefinition x:Name="Column2" MinWidth="50" Width="*" />
<ColumnDefinition x:Name="Column3" SharedSizeGroup="ColWidth"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Background="Green" />
<GridSplitter Grid.Column="0" Width="5" /> …
Run Code Online (Sandbox Code Playgroud) 看起来Ruby的Net :: HTTP的方法在阅读网页主体方面都是全有或全无.我怎么能读到身体的前100个字节呢?
我试图从内容服务器读取,如果请求的文件不可用,则在响应正文中返回一条简短的错误消息.我需要阅读足够的正文来确定文件是否存在.这些文件很庞大,所以我不想让整个机构检查文件是否可用.
我越来越多地使用 VirtualPc 2007,一个烦恼是“Alt-Tab”。
我想要的是能够使用 alt-tab 遍历主机 pc 和虚拟机中的所有应用程序,就好像它们是一个长列表一样。是否有设置或程序可以执行此操作?
我在WPF应用程序中使用ProgressBar控件,我得到了这个旧的,Windows 3.1 Progress Blocks的东西.在VB6中,有一个属性可以显示一个平滑的 ProgressBar.WPF有这样的事吗?
我需要做一个多语言的网站,网址就像
www.domain.com/en/home.aspx for english
www.domain.com/es/home.aspx for spanish
Run Code Online (Sandbox Code Playgroud)
在过去,我会在IIS中设置两个虚拟目录,然后在global.aspx中检测URL并根据URL更改语言
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
Dim lang As String
If HttpContext.Current.Request.Path.Contains("/en/") Then
lang = "en"
Else
lang = "es"
End If
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(lang)
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang)
End Sub
Run Code Online (Sandbox Code Playgroud)
解决方案更像是黑客攻击.我正在考虑将路由用于新网站.
你知道更好或更优雅的方式吗?
编辑:问题是关于URL处理,而不是关于资源等.
如何在一个文本块中发现URI?
我们的想法是将这些文本转换为链接.如果只考虑http(s)和ftp(s)方案,这很简单; 但是,我猜测一般问题(考虑tel,mailto和其他URI方案)要复杂得多(如果可能的话).
如果可能的话,我更喜欢C#中的解决方案.谢谢.
考虑到SQL Server 2005上的存储过程(循环游标)必须每小时运行一次并且运行大约需要5分钟,但它占用了大量的处理器时间:
编辑:如果可以的话,我会删除光标,不幸的是,我必须做一堆处理并根据行运行其他存储过程/查询.
我可以在每次获取之前使用WAITFOR DELAY'0:0:0.1'作为.Net的Thread.Sleep的SQL版本吗?因此,允许其他进程以此过程的执行时间为代价更快地完成.
或者是否有另一种我没有看到的解决方案?
谢谢
如果我的数据库中有一个名为'Users'的表,那么LINQtoSQL将生成一个名为'User'的类,其中已经声明了一个空构造函数.
如果我想覆盖这个构造函数并添加我自己的逻辑,那么最佳实践是什么?
较新的ARM处理器包括PLD和PLI指令.
我正在编写紧密的内部循环(在C++中),它具有非顺序的内存访问模式,但是我的代码完全理解的模式.如果我可以在处理当前内存位置的同时预取下一个位置,我预计会有大幅加速,我希望这很快就足以尝试值得实验!
我正在使用来自ARM的新的昂贵的编译器,它似乎没有在任何地方包含PLD指令,更不用说在我关心的这个特定循环中.
如何在C++代码中包含显式预取指令?
c# ×2
wpf ×2
.net ×1
actualwidth ×1
arm ×1
asp.net ×1
assembly ×1
c++ ×1
css ×1
html ×1
html-table ×1
http ×1
linq ×1
linq-to-sql ×1
multilingual ×1
progress-bar ×1
ruby ×1
sql-server ×1
textmatching ×1
uri ×1
virtual-pc ×1
width ×1
xaml ×1