小编Phi*_*Bel的帖子

WPF:当tabItem居中时,更改TabControl标签后面的背景

所以,我希望我的标签中的标签项水平居中.我还想更改选项卡背后的背景.我找到了这两件事的答案:

这个解释了我想要为背景做什么,并给出了解决方案

这个解释了如何使tabItem居中

我遇到的问题是它们都是单独工作的,但是当它们结合起来时,它们就无法工作.tabItems中心很好,但背景颜色不是我指定的颜色.

例如代码:

<TabControl>
    <TabControl.Resources>
        <Style TargetType="{x:Type TabPanel}">
            <Setter Property="HorizontalAlignment" Value="Center" />
            <Setter Property="Background" Value="Red" />
        </Style>
    </TabControl.Resources>

    <TabItem Header="Test 1" />
    <TabItem Header="Test 2" />
    <TabItem Header="Test 3" />
    <TabItem Header="Test 4" />
</TabControl>
Run Code Online (Sandbox Code Playgroud)

救命?

c# wpf tabcontrol

8
推荐指数
1
解决办法
3247
查看次数

批处理文件echo on/off无法正常工作

我不是很习惯制作批处理文件,所以我可能做错了什么,但我真的遇到了关闭/关闭的问题.(也就是说,如果你发现我错过了任何其他错误,请随意指出)

这是我的代码的简化版本:

@echo off
setlocal
set args=
set dir="."

:getargs
IF "%2"=="" (
    set dir="%1"
    goto callbatch
)
set args=%args% %1
shift
goto getargs

:callbatch
for %%f in (%dir%\*.txt) do (
    echo processing %%f
    "%BATCHHOME%\batch.bat %args% %%f
    echo
)
Run Code Online (Sandbox Code Playgroud)

所以基本上,我在BATCHHOME中有一个批处理文件,它对单个txt文件做了一些事情,我想生成一个批处理文件来处理给定目录中的所有txt文件.循环中唯一的回声是为了更好地说明问题.

现在,这是我遇到问题的地方.输出如下:

processing foo\text1.txt
some output from batch.bat
ECHO is on.

C:\somedir>(
echo processing foo\text2.txt
   "C:\the\path\of\batch.bat" the arguments here foo\text2.txt
)
ECHO is on.

C:\somedir>(
echo processing foo\text3.txt
   "C:\the\path\of\batch.bat" the arguments here foo\text3.txt
)
ECHO is on.

(etc)
Run Code Online (Sandbox Code Playgroud)

好的...我不知道为什么我正在调用的批处理文件会响应,但我没有成功,所以我每次都会把它关掉!我把最后一部分改为:

:callbatch
for …
Run Code Online (Sandbox Code Playgroud)

batch-file

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

Java notifyAll不会马上醒来

所以,我有以下对象(为了举例简化):

public class SomeListener implements EventListener{
    public final Object lock = new Object();
    public int receivedVal;

    @Override
    public onDataAvailable(int val){
        synchronized(lock){
            System.out.println("listener received val: " + val);
            receivedVal = val;
            lock.notifyAll();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在主线程的某处(再次,简化)中有这段代码:

SomeListener listener = new SomeListener();
EventGenerator generatorThread = new EventGenerator();
generatorThread.addListener(listener);
synchronize(listener.lock){
    generatorThread.start();
    listener.lock.wait();
    System.out.println("value is: " + listener.receivedVal);
}
//some other stuff here....
Run Code Online (Sandbox Code Playgroud)

现在,EventGenerator对象使用val = 1调用"onDataAvailable",然后在另一个线程上调用val = 2.基本上,我期望看到的是:

listener received val: 1
value is: 1
listener received val: 2
Run Code Online (Sandbox Code Playgroud)

但是,我通常得到:

listener received val: 1 …
Run Code Online (Sandbox Code Playgroud)

java multithreading

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

标签 统计

batch-file ×1

c# ×1

java ×1

multithreading ×1

tabcontrol ×1

wpf ×1