小编Don*_*uck的帖子

x:如果元素包含在UserControl的内容中(Silverlight),则名称不起作用

情况:

我有一个UserControl像这样的"包装器面板" (为简洁起见,删除了名称空间和视觉细节):

<UserControl ...>
<Grid x:Name="LayoutRoot" Background="White">
    <ContentPresenter x:Name="integratedPanelContent" Margin="5" /> 
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

然后在Code-behind中我注册了一个依赖属性

public FrameworkElement PanelContent
{
    get { return (FrameworkElement)GetValue(PanelContentProperty); }
    set { SetValue(PanelContentProperty, value); }
}
public static readonly DependencyProperty PanelContentProperty =
    DependencyProperty.Register("PanelContent", typeof(FrameworkElement), typeof(MyWrapperPanel),
      new PropertyMetadata(null, OnPanelContentChanged));

private static void OnPanelContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
    ((MyWrapperPanel)d).OnSetContentChanged(e);
}

protected virtual void OnSetContentChanged(DependencyPropertyChangedEventArgs e)
{
    if (PanelContent != null)
        integratedPanelContent.Content = PanelContent;
}
Run Code Online (Sandbox Code Playgroud)

现在我可以将任何内容包装到我的控件中:

<my:MyWrapperPanel x:Name="myWrap">
    <my:MyWrapperPanel.PanelContent>
        <TextBlock x:Name="tbxNothing" Text="Nothing" />
    </my:MyWrapperPanel.PanelContent>
</my:MyWrapperPanel>
Run Code Online (Sandbox Code Playgroud)

问题描述:

每当我尝试在代码隐藏中使用引用tbxNothing时,系统抛出, …

silverlight user-controls code-behind wrapper

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

postgresql特权确保插入只能通过函数完成

假设我有一个只包含名称(varchar)和用户客户端的表人员.

我希望客户端插入人员的唯一方法是通过以下功能:

CREATE OR REPLACE FUNCTION add_a_person(a_name varying character)
  RETURNS void AS
$BODY$
BEGIN
    INSERT INTO persons VALUES(a_name);
END;
$BODY$
  LANGUAGE plpgsql VOLATILE COST 100;
Run Code Online (Sandbox Code Playgroud)

所以,我不想授予客户端插入权限,只为add_a_person提供执行权限.但是如果不这样做,我会因为在函数内部使用insert而获得权限被拒绝.

我在postgres文档中找不到关于授予权限的方法.有没有办法做到这一点?

postgresql privileges

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

与BCrypt.net合作

我正在使用自定义会员系统ASP.NET MVC3(在此解释).我想用BCrypt.我的问题是BCrypt.net论证范围.即可以散列它的字符串的最小最大长度BCrypt,最小/最大长度salt,以及输出字符串的长度.我现在真的在创建数据库,我想知道如何在db中设置密码列.即nvarchar(256)或其他什么?

security bcrypt c#-4.0 asp.net-mvc-3 bcrypt.net

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

PyOpenGL,Pygame和着色器似乎不配合

我一直在研究有关现代OpenGL编程的出色教程,并且正在慢慢调整使其适用于PyOpenGL和pygame。但是,我最难获得与透视几何配合使用的“简单”示例。代码如下:

import pygame
import numpy as np
from OpenGL.GL import *

##########################################
# Define the simple pass-through shaders
##########################################
import cStringIO
vshade = cStringIO.StringIO("""
#version 110

uniform mat4 p_matrix;
uniform mat4 mv_matrix;

attribute vec4 position;

void main()
{
    vec4 eye_position = mv_matrix * position;
    gl_Position = p_matrix * eye_position;
}
""")

fshade = cStringIO.StringIO("""
#version 110

void main()
{
    gl_FragColor = vec4(1.0,0.0,0.0,1.0);
}
""")

###################################################
# Set up a simple square composed of two triangles
###################################################
verts = …
Run Code Online (Sandbox Code Playgroud)

python pygame glsl pyopengl

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

在VB .NET中生成所有实际组合

我需要在VB .NET中生成所有组合(不是排列),我一直在搜索,我找到的只是排列(有些人说组合,但是当我尝试它时,所有都是排列).

我需要的是从字符串数组生成组合:

Dim data_array As String() = {"one", "two", "three", "four", "five", "six"}
Run Code Online (Sandbox Code Playgroud)

我需要它:

如果我只说一个长度,它必须返回:

one
two
three
four
five
six
Run Code Online (Sandbox Code Playgroud)

如果我说2长度,它必须回复:

oneone
onetwo
onethree
onefour
... etc ...
twoone
twotwo
twothree
... etc ...
Run Code Online (Sandbox Code Playgroud)

并继续使用所有组合结束.

如果我说更多长度也这样做.

vb.net

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

判断是否重定向了Perl脚本的STDOUT

所以我写了一个简单的html 1.0服务器,我在服务器上有一些perl脚本.特别是,我有一个名为直方图的脚本,这是一个带有表单操作的html表单,与另一个cgi文件相同.这是代码:

print "<form action=\"tallyandprint.cgi\" method=\"GET\">";
Run Code Online (Sandbox Code Playgroud)

现在,当我调用tallyandprint.cgi时,它会绘制一个带有gnuplot的图形并将其发送到用户的浏览器(STDOUT在html服务器代码中被重定向,因此perl会对其进行处理).现在,我也希望能够从bash运行tallyandprint.cgi,但采用不同风格的参数.现在,我使用perl解析通过解析url来抓取模式,并在+符号之间分隔内容(例如:?pattern = 1 + 2 + 3 + 4就是url).

这很好,花花公子,但我不希望我的论点用bash写成1 + 2 + 3 + 4,而是分开不同.我尝试使用perl的isatty()版本,但由于输入总是来自终端(因为服务器执行它),我无法区分输入是来自bash还是来自web浏览器.

我的下一步是找出STDOUT是否被重定向.因为如果web服务器运行cgi,STDOUT将被重定向到用户连接的套接字.如果在bash中运行,STDOUT应该是正常的tty.我怎样才能在perl中检查这个?

perl stdout tty io-redirection

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

在VB.net关闭后,Excel进程仍然运行

我的问题基本上就是如何结束使用excel时运行的Excel.exe进程.在应用程序中,我打开并使用带有几张纸的excel工作簿,然后将它们留给用户随意使用,我的问题是我的应用程序永远不会放弃Excel流程.

如果在关闭excel之前关闭了应用程序,则关闭excel时进程结束,否则如果在关闭excel后关闭我的应用程序,则该进程将继续运行.

我已经尝试了一些我在互联网上发现的与GC.collect有关的东西,等待待定的终结器或者其他类似的东西但是都没有用.

我也可以愉快地关闭excel流程,唯一的问题是不知道我是否正在关闭他们已经忽略但尚未保存的用户重要电子表格.

我不确定我的代码是否有任何帮助,但我使用microsoft.office.interop.excel来获得excel,并且我正在使用已保存在应用程序资源文件夹中的工作簿.

-编辑-

这是我尝试过的一切,我知道它有点矫枉过正,但遗憾的是它仍然没有结束这个过程

Marshal.ReleaseComObject(FirstWorksheet)
Marshal.FinalReleaseComObject(FirstWorksheet)
Marshal.ReleaseComObject(SecondWorksheet)
Marshal.FinalReleaseComObject(SecondWorksheet)
Marshal.ReleaseComObject(ThirdWorksheet)
Marshal.FinalReleaseComObject(ThirdWorksheet)
Marshal.ReleaseComObject(FourthWorkSheet)
Marshal.FinalReleaseComObject(FourthWorkSheet)
Marshal.ReleaseComObject(xlRange)
Marshal.FinalReleaseComObject(xlRange)
Marshal.ReleaseComObject(SecondxlRange)
Marshal.FinalReleaseComObject(SecondxlRange)
Marshal.ReleaseComObject(thirdxlRange)
Marshal.FinalReleaseComObject(thirdxlRange)
Marshal.ReleaseComObject(fourthxlRange)
Marshal.FinalReleaseComObject(fourthxlRange)
Marshal.ReleaseComObject(.activeworkbook)
Marshal.FinalReleaseComObject(.activeworkbook)
Marshal.ReleaseComObject(excelApplication)
Marshal.FinalReleaseComObject(excelApplication)
MSExcelControl.QuitExcel() 'A function made by someone else I work with that was meant to close excel's process
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
Run Code Online (Sandbox Code Playgroud)

-Edit-这是quitExcel方法

Friend Shared Sub QuitExcel()
    If Not getExcelProcessID = -1 Then
        If Not excelApp Is Nothing Then
            'Close and quit
            With excelApp
                Try
                    Do Until .Workbooks.Count = 0
                        'Close all open documents …
Run Code Online (Sandbox Code Playgroud)

vb.net excel interop garbage-collection

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

MPMoviePlayerController将不会设置为我声明的大小框架

我目前正在尝试为MPMoviePlayerController设置框架,该框架存储在自定义类(VideoEngine)中.使用由用户在应用期间捕获的视频提供的URL来设置电影.(我希望这一点有道理).然后我按如下方式设置MPMoviePlayerControllers视图:

    - (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    //[self.image setImage:[info objectForKey:UIImagePickerControllerMediaURL]];
    videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
    [parentView dismissModalViewControllerAnimated:NO];

    VideoEngine *ve = [[VideoEngine alloc] initWithCallbackName:@"movieFinishedPlaying"];
    [ve loadMovieURL:videoURL];
    [ve.player.view setFrame:CGRectMake((0 + self.frame.size.width * 0.2), self.frame.size.height * 0.3, self.frame.size.width * 0.6, self.frame.size.width * 0.4)];

    CGRect frame = ve.player.view.frame;

    self.video = ve;
    [self addSubview:self.video.player.view];
    [ve release];
}
Run Code Online (Sandbox Code Playgroud)

首先,我想指出,我知道高度值是使用宽度设置的,但是要保持它更宽,然后它是高的(不要讨论目前这样做的方式).正如你所看到的,我有一个指向视图框架的指针,所以我可以检查这些值(它不会让我直接使用po访问).以下是值的屏幕截图:

帧输出

正如你所看到的(差不多),框架是192宽x 128高,很好.但是,当我在手机中查看它时,它看起来如下:

手机截图

手机的所有旋转都已禁用,因此旋转时不应该尝试以奇怪的方式调整大小.我对此感到非常困惑,所以如果有人有任何想法,我将非常感激.

xcode resize objective-c mpmovieplayercontroller uiview

4
推荐指数
2
解决办法
8727
查看次数

使用gridlayout添加按钮

我正在尝试制作一个由9x9 JButton制作的简单的tic tac toe board.我使用了二维数组和一个gridlayout,但结果是什么,没有任何按钮的框架.我做错了什么?

import java.awt.GridLayout;
import javax.swing.*;


public class Main extends JFrame
{
    private JPanel panel;
    private JButton[][]buttons;
    private final int SIZE = 9;
    private GridLayout experimentLayout;
    public Main()
    {
        super("Tic Tac Toe");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500,500);
        setResizable(false);
        setLocationRelativeTo(null);

        experimentLayout =  new GridLayout(SIZE,SIZE);

        panel = new JPanel();
        panel.setLayout(experimentLayout);


        buttons = new JButton[SIZE][SIZE];
        addButtons();


        add(panel);
        setVisible(true);
    }
    public void addButtons()
    {
        for(int k=0;k<SIZE;k++)
            for(int j=0;j<SIZE;j++)
            {
                buttons[k][j] = new JButton(k+1+", "+(j+1));
                experimentLayout.addLayoutComponent("testName", buttons[k][j]);
            }

    }


    public static void main(String[] args) 
    { …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jbutton grid-layout

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

样式输入类型="文件".如何显示文件路径?

我一直在尝试设置输入类型="文件"字段的样式.我的按钮是样式的,但我似乎无法弄清楚当用户选择要上传的文件时如何显示文件路径/文件.任何人都可以帮忙吗?

<form action="" method="POST" enctype="multipart/form-data">
    <div class="fileupload-buttonbar">
        <label class="file-upload"><span>Upload....</span><input name="uploadfile" type="file"> </label>    
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

CSS ......

.file-upload {
    overflow: hidden;
    display: inline-block;
    position: relative;    
    vertical-align: middle;
    text-align: center;
    color: #fff;
    border: 2px solid #707070;
    background: #A0A0A0;
    -moz-border-radius: 8px;
    -webkit-border-radius: 8px;
    border-radius: 8px;
    text-shadow: #000 1px 1px 4px;
    cursor:pointer;
}
.file-upload:hover {
    background: #2FA2FF;
}
.file-upload.focus {
    outline: 2px solid yellow;
}
.file-upload input {
    position: absolute;
    top: 0;
    left: 0;
    margin: 0;
    font-size: 12px;
    opacity: 0;
    filter: alpha(opacity=0);
    z-index:-1;
} …
Run Code Online (Sandbox Code Playgroud)

html css forms file-upload

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