小编Bre*_*yan的帖子

如何使 WPF TabControl 在 Windows 窗体中使用 MultiLine = false 出现(默认)

在 Windows 窗体中,TabControl 的默认行为是,如果选项卡占用太多空间 (MultiLine = false),则将选项卡溢出到可滚动区域。

在 WPF 中实现此行为的最佳方法是什么?

更新

我试图找到一个解决方案TabControl.ItemsPanel,但似乎我放在那里的任何东西都被完全忽略了,所以出于这个原因,我走了一条艰难的路,并从TabControl.Template令人难以置信的开始,如果事实证明我们必须这样做才是正确的做法。

远未完成,我对问题的起始解决方案如下。

<TabControl>
  <TabControl.Template>
    <ControlTemplate TargetType="{x:Type TabControl}">
      <DockPanel>
        <ScrollViewer DockPanel.Dock="Top"
                      HorizontalScrollBarVisibility="Auto"
                      VerticalScrollBarVisibility="Disabled">
          <StackPanel Orientation="Horizontal" IsItemsHost="True" />
        </ScrollViewer>
        <ContentPresenter ContentSource="SelectedContent" />
      </DockPanel>
    </ControlTemplate>
  </TabControl.Template>
  <TabItem Header="One">First</TabItem>
  <TabItem Header="Two">Second</TabItem>
  <TabItem Header="Three">Third</TabItem>
  <TabItem Header="Four">Fourth</TabItem>
  <TabItem Header="Five">Fifth</TabItem>
</TabControl>
Run Code Online (Sandbox Code Playgroud)

wpf xaml tabcontrol

5
推荐指数
1
解决办法
9803
查看次数

如何使用Exchange Web服务(EWS)检索全局联系人?

我正在使用EWS并希望从公司的交换中获取全球地址列表.我知道如何检索个人联系人列表.

API文档中的所有示例都涉及更新用户信息,但没有具体说明如何检索它们.

我甚至尝试过以下列出文件夹,但它没有正确的结果.

private static void ListFolder(ExchangeService svc, FolderId parent, int depth) {
    string s;
    foreach (var v in svc.FindFolders(parent, new FolderView(int.MaxValue))) {
        Folder f = v as Folder;
        if (f != null) {
            s = String.Format("[{0}]", f.DisplayName);
            Console.WriteLine(s.PadLeft(s.Length + (depth * 2)));
            ListFolder(svc, f.Id, depth + 1);

            try {
                foreach (Item i in f.FindItems(new ItemView(20))) {
                    Console.WriteLine(
                        i.Subject.PadLeft(i.Subject.Length + ((depth + 1) * 2)));
                }
            } catch (Exception) {
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然问题已经提出(如何从Exchange Server获取联系人列表?),但这个问题特别涉及使用EWS获取全局地址列表,而此问题在一般级别上请求建议.

exchange-server exchange-server-2007

5
推荐指数
1
解决办法
7479
查看次数

输入框提示文本的推荐策略是什么(例如搜索框中覆盖的"搜索")?

许多页面都有一个搜索框,通常会有覆盖文本"搜索",当一个人聚焦元素时会消失,当焦点丢失时会重新出现.我很想知道人们推荐的最佳策略.

我采用的策略是使用输入元素的焦点/模糊事件并测试内容以确定是否应该更改值.在我的以下示例中,我使用jQuery.举一个例子,我们有一个带有的idof quick-search,当为空时,我在焦点时显示文本"搜索"我删除文本并更新样式,

$(function() {
  $("#quick-search").focus(function() {
    if (this.value === "Search") {
      $(this).removeClass("quick-search-not-focussed");
      this.value = "";
    }
  }).blur(function() {
    if (this.value === "") {
      $(this).addClass("quick-search-not-focussed");
      this.value = "Search";
    }
  });
})
Run Code Online (Sandbox Code Playgroud)

我的quick-search-not-focussed课程如下:

.quick-search-not-focussed { color: #bbb; }
Run Code Online (Sandbox Code Playgroud)

这对我来说效果很好,因为搜索框只能在输入时提交,因为没有按钮,但是有些场景需要更多输入元素并且输入文本被覆盖,您使用的替代技巧/技术是什么?我个人不喜欢这种方法中使用图像.

html css jquery

5
推荐指数
1
解决办法
950
查看次数

如何使用可选的时间参数创建DateFormat?

我希望构造一个可选择具有时间参数的日期格式.

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd [hh:mm]");
Run Code Online (Sandbox Code Playgroud)

是否也可以构造一个能够解析不同格式的日期格式对象?比如尝试当前的语言环境,然后再回到ISO-8601,或者如果一个失败,我应该写多个日期格式?

更新:回顾这个问题,我可以看到我没有指定多个日期格式的原因是解析字符串,而不是格式化日期,因此格式化日期对象的模糊不是我的问题.如果考虑到这一点,时间部分是否包含在解析字符串中.

java format datetime date

5
推荐指数
1
解决办法
7293
查看次数

请使用CommonJS推荐钛项目结构

我正在开始一个新的Titanium应用程序,并希望使用最佳实践,并避免内存泄漏.我是CommonJS以及Titanium平台的新手.

不幸的是,似乎钛环绕在所有的示例应用程序Ti.include("/lib/module"),而不是新的建议的最佳实践require("/lib/module").

我担心的是使用CommonJS的内存消耗可能需要.从Titanium中CommonJS模块文档中可以看出模块将被缓存,这是否意味着如果我访问模块,即使它们超出范围,所有这些功能也会突然停留在内存中?

我已经开始使用以下结构的新应用程序

/ctrl           # Model/UI controllers
/lib            # libraries (common + 3rd party)
/ui             # UI forms
/model          # DAL objects for data store
Run Code Online (Sandbox Code Playgroud)

从这里我的主应用程序有一个仪表板样式视图,其结构松散如下:

(function() {
    var getMenuItem = require("/ui/main").getMenuItem;
    var win = Titanium.UI.createWindow({
        title:'Main',
        backgroundColor:'#fff'
    });
    var nav = Ti.UI.iPhone.createNavigationGroup({
        window:win
    });
    var sect;
    var data = [];
    sect = Ti.UI.createTableViewSection();
    data.push(sect);
    sect.add(getMenuItem("Customers",
        require("/ctrl/account").createCustMainWindow));
    sect.add(getMenuItem("Schedules",
        require("/ctrl/schedule").createScheduleMainWindow));
    sect.add(getMenuItem("Settings"));
    var menu = Titanium.UI.createTableView({
        style: Ti.UI.iPhone.TableViewStyle.GROUPED,
        data:data
    });
    win.add(menu); …
Run Code Online (Sandbox Code Playgroud)

javascript titanium commonjs ios titanium-mobile

5
推荐指数
1
解决办法
2900
查看次数

是否有AJP代理websocket连接的解决方案?

我目前正在通过apache使用AJP代理到tomcat 8.我不想说明为什么我使用的是AJP,但基本的是防火墙外的Apache站点,而tomcat在防火墙内,多个应用程序是虚拟托管的通过一个apache实例.

添加了一个组件到应用程序需要websockets.我知道我们当前的AJP实现不支持websockets,但是我正在寻找其他人已经确认工作的替代方案,即不同的apache模块,我正在使用mod_proxy_ajp.

如果没有已知模块允许它工作,是否有人知道任何正在进行的工作,以增强任何现有模块或新模块?

FWIW我正在使用带有STOMP端点和SockJS的spring4 websocket支持.

apache proxy tomcat ajp websocket

5
推荐指数
1
解决办法
4187
查看次数

如何在元素外部绘制元素?

我正在尝试将元素渲染到其父面板的边界之外,在这种情况下我正在使用堆栈面板.

<StackPanel ClipToBounds="False" Width="200" Orientation="Horizontal" Height="50"
            Background="{DynamicResource TierBackground}">
    <Rectangle ClipToBounds="False" VerticalAlignment="Bottom" Width="25" Height="75"
               Fill="#FF4D6072" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

设置ClipToBounds似乎没有做任何事情,我首先在它上面Rectangle然后在父面板上尝试它,虽然似乎都没有帮助.

UPDATE

Canvas容器似乎是对该ClipToBounds属性的尊重,但似乎没有其他容器能够尊重这一点.

UPDATE

我已经包含了我想要实现的目标的图像.棕色区域是内部堆栈面板,它们在父堆栈面板内分组,查看灰色框(表示产品定位)如何延伸超过父容器并从上面的层覆盖父产品.

这是通过在父级内部堆叠多个画布来实现的,StackPanel其中子级产品元素的Canvas.Bottom属性设置为0.虽然这确实有效,但这意味着我必须将每个产品元素设置为"左"属性,并且不能自动将布局定位到产品.

StackPanels http://img263.imageshack.us/img263/8682/stackpanels.jpg

.net wpf xaml rendering canvas

4
推荐指数
1
解决办法
3098
查看次数

如何在JSTL if语句中执行按位逻辑?

我需要在JSP中执行按位测试,但是我一生都无法弄清楚如何使用EL进行测试。

我想做类似的事情:

<c:if test="${(test & testFor) == testFor}">
  <h3>Test Passed</h3>
</c:if>
Run Code Online (Sandbox Code Playgroud)

当然,我可以使用普通的JSP语法来做到这一点:

<% if ((test & testFor) == testFor) { %>
  <h3>Test Passed</h3>
<% } %>
Run Code Online (Sandbox Code Playgroud)

java jsp jstl

4
推荐指数
1
解决办法
2856
查看次数

是否有针对jaxb2-maven-plugin的修复:schemagen与JDK8一起使用?

在JDK 7中,jaxb2-maven-plugin产生一个关于apt被删除的警告,它现在已经在JDK8中,我不知道如何让插件与JDK8一起工作.

警告:计划在下一个主要JDK版本中删除apt工具及其关联的API.这些功能已被javac和标准化的注释处理API javax.annotation.processing和javax.lang.model取代.建议用户迁移到javac的注释处理功能; 有关更多信息,请参阅javac手册页.

我在项目页面上创建了一张票:MJAXB-83.

java maven maven-jaxb2-plugin java-8

4
推荐指数
1
解决办法
1984
查看次数

有没有办法从整分钱价值构建MonetaryAmount?

给定价格点表示为整数美分的整数,即199 = $1.99是否有用于构造MonetaryAmount?的API方法?

一种简单的方法是将金额除以100,但想知道是否有一种API方法.

MonetaryAmount ma = Money.of(199, "NZD").divide(100);
Run Code Online (Sandbox Code Playgroud)

java jsr354 java-money

4
推荐指数
1
解决办法
366
查看次数