小编wkl*_*wkl的帖子

如何垂直对齐FlowDocument的TableCell(或其内容)

有没有办法将a的内容TableCell与底部对齐?我觉得这很容易,但很明显,事实并非如此.

情况:

在里面FlowDocument我有以下(简化)Table:

<Table>
    <Table.Columns>
        <TableColumn Width="Auto"/>
        <TableColumn Width="Auto"/>
        <TableColumn Width="Auto"/>
    </Table.Columns>
    <TableRowGroup>
        <TableRow>
            <TableCell>
                <BlockUIContainer>
                    <Image Source="{Binding to an image}"/>
                </BlockUIContainer>
            </TableCell>
            <TableCell containing something else/>
           <TableCell>
                <BlockUIContainer>
                    <Image Source="{Binding to another image}"/>
                </BlockUIContainer>
            </TableCell>
        </TableRow>
    </TableRowGroup>
</Table>
Run Code Online (Sandbox Code Playgroud)

这两个图像的高度不同,因此在较小的图像下方有一些空白区域.

我想要的是:

相反,我希望较小图像上方的空白区域(即图像对齐到底部TableRow).

我尝试了什么:

我试图找到一个VerticalAlignment属性来改变对齐方式.但是,没有VerticalAlignment财产BlockUIContainer,TableCellTableRow.

此外,我尝试将其替换为BlockUIContaineran InlineUIContainer并设置它BaselineAlignment.但是,要做到这一点,我必须把它包装成Paragraph这样:

<TableCell>
    <Paragraph>
        <InlineUIContainer BaselineAlignment="Bottom">
            <Image Source="{Binding to …
Run Code Online (Sandbox Code Playgroud)

wpf xaml vertical-alignment flowdocument

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

用npoi创建单元格的边框

我有一个Excel文件作为我的Excel工作的模板,我想以编程方式用数据填充此模板.

当我创建一个行和一个附带的单元格并为新创建的单元格设置边框时,将为整个工作表分配此边框.当然,我只希望单个细胞具有该边界.这是代码:

string path = Application.StartupPath + "\\" + "Excels\\myTemplate.xls";
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);

HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);
HSSFSheet sheet = templateWorkbook.GetSheet("sheet2");

int rowIndex = 3;
var row = sheet.CreateRow(rowIndex);

int i = 0;
string zoneNo;
string SubsidiaryCode = string.Empty;
foreach (DataRow r in dtBill.Rows)
{
  SubsidiaryCode = (r["SubsidiaryCode"].ToString().Trim());
  zoneNo = (r["ZoneNO"].ToString().Trim());

  HSSFCell cell = (HSSFCell)row.CreateCell(i);
  cell.SetCellValue("Zone " + zoneNo + "-code :" + SubsidiaryCode);
  cell.CellStyle.BorderBottom = HSSFCellStyle.BORDER_MEDIUM;
  i++;

  row.CreateCell(i).SetCellValue(r["Date"].ToString().Trim());
  row.CreateCell(i).CellStyle.BorderBottom = HSSFCellStyle.BORDER_MEDIUM;
  i++;

  rowIndex++; …
Run Code Online (Sandbox Code Playgroud)

export-to-excel npoi

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

(如何)调试会改变程序的工作流程?

考虑以下简单程序:

var dblMax = Double.MaxValue;

var result = (dblMax * 1000) / 1800;
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)

当我在调试模式下构建它并运行 (Ctrl+F5) 或调试 (F5) 时,它会打印9.987140856842E+307.

当我切换到 Release 模式并运行 (Ctrl+F5) 它时,它会8无限打印。

我知道这种差异是由于在发布模式下完成的一些编译器优化造成的。

但是,如果我在发布模式下调试 (F5)相同的构建,它会9.987140856842E+307再次打印 !

我正在调试的事实如何改变计算结果?

编辑:

我不问为什么调试模式和发布模式会产生不同的结果。我想知道为什么发布模式会根据我是否调试 (F5) 或不调试 (Ctrl+F5) 产生不同的结果。

c# debugging visual-studio-2010

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

为什么这个计算(除法)会返回错误的结果?

我在使用 C++ 时遇到了一个奇怪的问题。在 OpenGL 代码中,我尝试以这种方式计算一个简单的表达式

void mouse(int button, int state, int x, int y){
    double posx = (x-300)/300;
    double posy = -1*(y-300)/300;

    switch(button){
        case GLUT_LEFT_BUTTON:
            if(state == GLUT_DOWN){
                if(count < max){
                    particles[count].x = posx;
                    particles[count].y = posy;
                    particles[count].active = true;
                    count++;
                }

                glutPostRedisplay();
            }
            break;
        default:
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,每个粒子都出现在屏幕中央。奇怪的是,当我替换double posx = (x-300)/300

double posx;
posx = x-300;
posx = posx/300;
Run Code Online (Sandbox Code Playgroud)

(与 y 相同)代码有效......有人知道为什么会这样吗?也许这是一件非常简单的事情,我做错了。自从我使用 C++ 已经有很长时间了,如果这是我的一个简单错误,那么抱歉。

c++

-3
推荐指数
1
解决办法
88
查看次数