好吧,这与这个问题有些相关:WPF从单个View Model打印多个页面
我试着按照那里给出的建议,但现在我被卡住了.
我的应用程序使用MainView.xaml和相应的MainViewViewModel.cs,我在后台使用MVVM Light.
现在 - 根据帖子 - 似乎我必须做以下事情:
这个想法很明确,但我在试图互相通知时感到困惑.
我的用户控件(UcTest.xaml)公开了一个依赖属性:
public string SpecialText
{
get { return (string)GetValue(SpecialTextProperty); }
set
{
SetValue(SpecialTextProperty, value);
}
}
// Using a DependencyProperty as the backing store for SpecialText. This enables animation, styling, binding, etc...
public static readonly DependencyProperty SpecialTextProperty =
DependencyProperty.Register("SpecialText", typeof(string), typeof(UcTest), new PropertyMetadata(new PropertyChangedCallback(SpecialTextChangedPropertyCallback)));
private static void SpecialTextChangedPropertyCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
// Do something
Debug.WriteLine("Ffgdgf");
}
Run Code Online (Sandbox Code Playgroud)
好吧,我现在有一个用户控件,它有一些依赖属性.然而,这些属性与我的ViewModel属性完全分离(那些属性应该显示).
所以基本上我有两种可能性:
附加信息#1:我已经上传了一个(简单)示例,说明了我在这里要做的事情:示例项目.我想从我的MainViewViewModel更改UserControl1中的标签值(通过ViewConodel中的绑定属性,用于UserControl1).
我目前正在研究嵌入式微控制器并使用自定义printf例程.工具链是AVR32架构的GCC工具链.
我有问题,第二次调用vsnprintf或类似的CPU进入异常条件.
从支持,我得到了答案:
我们找不到任何这种行为的明显原因.但是,通过逐字节写入来创建浮点溢出条件并不安全.我们无法确保由此产生的值,建议使用"FLT_MAX"进行检查.
现在我想知道:什么是"非法"浮动值?不是所有的位组合都不应该代表至少一些值吗?如果相关:sizeof(float)是4个字节.
我目前正在开发一个嵌入式系统,我在电路板上有一个组件,它出现了两次.我想为组件提供一个.c和一个.h文件.
我有以下代码:
typedef struct {
uint32_t pin_reset;
uint32_t pin_drdy;
uint32_t pin_start;
volatile avr32_spi_t *spi_module;
uint8_t cs_id;
} ads1248_options_t;
Run Code Online (Sandbox Code Playgroud)
这些都是硬件设置.我创建了这个结构的两个实例(每个部分一个).
现在我需要在后台保留一组值.例如,我可以每秒从该设备读取值,并且我想保留最后100个值.我希望这些数据不能从我的组件的"外部"访问(仅通过我的组件中的特殊功能).
我不确定如何在这里继续.我真的需要将数组作为结构的一部分吗?我想到的是做以下事情:
int32_t *adc_values; // <-- Add this to struct
int32_t *adc_value_buffer = malloc(sizeof(int32_t) * 100); // <-- Call in initialize function, this will never be freed on purpose
Run Code Online (Sandbox Code Playgroud)
然而,我将能够从我的代码中的任何地方(也来自我的组件外部)访问我的int32_t指针,这是我不喜欢的.
这是唯一的方法吗?你知道更好的方法吗?
谢谢.
好吧,我该如何开始呢?
我有一个应用程序,可以在屏幕上绘制一些形状(实际上是几千).它们有两种类型:矩形和直线.矩形有一个填充,行有一个Stroke + StrokeThickness.
我从两个文件中读取数据,一个是顶部数据,一个是底部数据.为了显示数据,我使用了一个带有Canvas的Viewbox(所以内容很好地拉伸).显示屏上的整个内容看起来像这样(这是正确的):

现在,同一个应用程序应该将此图像打印到打印机(用于测试我使用Windows附带的XPS打印机).
当我打印它(代码如下)时,它给出了相同的绘图顶部,但对于底部以下内容:

看起来所有"线"都缺失(矩形存在).为了显示底部,我使用-1/-1的比例变换(水平和垂直镜像).如果我将比例变换设置为1/1,我会得到以下结果:

现在我被卡住了.为什么所有的线条都会消失,但如果它没有镜像,它们就在那里.最外面的矩形也有点移位(这可能是由于数据,所以请不要关注它).
我用于在屏幕上绘图的代码是:
<Viewbox Grid.Row="0" RenderTransform="{Binding RenderTransform}" Margin="20" Name="VwBox">
<Viewbox.RenderTransformOrigin>
<Point X="0.5" Y="0.5"></Point>
</Viewbox.RenderTransformOrigin>
<ItemsControl ItemsSource="{Binding Drawing}" ItemTemplateSelector="{StaticResource DataTypeTemplateSelector}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Width="{Binding DrawingWidth}" Height="{Binding DrawingHeight}">
</Canvas>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding Left}"/>
<Setter Property="Canvas.Top" Value="{Binding Top}"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
</Viewbox>
Run Code Online (Sandbox Code Playgroud)
对于打印我不依赖于XAMl,而是手动执行(如果我使用ContentPresenter则不会改变它):
if (gs is GerberLine)
{
ContentPresenter cp = new ContentPresenter();
var line = new Line();
Canvas.SetLeft(cp, gs.Left);
Canvas.SetTop(cp, gs.Top);
line.X1 = 0.0;
line.Y1 = 0.0;
line.X2 = gs.Width; …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个网站,该网站应该以用户的语言显示ist消息(我认为这称为国际化或全球化).我为英语添加了.resx文件(默认为ist),为德语(.de.resx)添加了另一个.resx文件.当我在本地运行网站时,很好地显示德语文本.现在,一旦我将网站发布到Azure,它仍然有效,但一切都是英文的,虽然我使用相同的语言设置相同的浏览器(更改浏览器也不会改变任何东西).Fiddler告诉我首选语言(Accepted-Language)实际上是de,en-US,en(按此顺序).
任何想法为什么Azure将一直用英语呈现一切?本网站是在Visual Studio 2013中开发的MVC5网站.
假设我有以下函数签名:
int printf(const char * restrict format, ... );
Run Code Online (Sandbox Code Playgroud)
现在,我有一个字符串定义如下:
volatile char command_str[256];
Run Code Online (Sandbox Code Playgroud)
现在,当我想将此字符串传递给我的printf函数时,我将收到以下警告:
Warning 32 [N] 2943 : passing 'volatile char [256]' to parameter of type 'const char *' discards qualifiers C:\P\parameter\parameter.c
Run Code Online (Sandbox Code Playgroud)
我不想改变printf签名,最简单的解决方案就是让警告消失
printf((const char*)command_str, .......);
Run Code Online (Sandbox Code Playgroud)
我觉得这不是最好的解决方案.什么是正确的做法?我无法进行command_str非易失性,因为它是在中断内访问的.
我可能不是SQL专家,但在进行性能测试时,我看到EF6(Code-First)生成以下语句:
SELECT
[UnionAll3].[C2] AS [C1],
[UnionAll3].[C3] AS [C2],
[UnionAll3].[C4] AS [C3],
[UnionAll3].[C5] AS [C4],
[UnionAll3].[C6] AS [C5],
[UnionAll3].[C7] AS [C6],
[UnionAll3].[C8] AS [C7],
[UnionAll3].[C1] AS [C8],
[UnionAll3].[C9] AS [C9],
[UnionAll3].[C10] AS [C10],
[UnionAll3].[C11] AS [C11],
[UnionAll3].[C12] AS [C12],
[UnionAll3].[C13] AS [C13],
[UnionAll3].[C14] AS [C14],
[UnionAll3].[C15] AS [C15],
[UnionAll3].[C16] AS [C16],
[UnionAll3].[C17] AS [C17],
[UnionAll3].[C18] AS [C18],
[UnionAll3].[C19] AS [C19],
[UnionAll3].[C20] AS [C20],
[UnionAll3].[C21] AS [C21],
[UnionAll3].[C22] AS [C22],
[UnionAll3].[C23] AS [C23],
[UnionAll3].[C24] AS [C24],
[UnionAll3].[C25] AS [C25],
[UnionAll3].[C26] AS [C26], …Run Code Online (Sandbox Code Playgroud) 我有一个有很多列的表格,每个列都可以按照它认为合适的方式来换行,除了第一列我根本不想换行。(我认为)的问题是第一行单词通常如下所示:
ABCDE-S01
SDFSD-X03
...
Run Code Online (Sandbox Code Playgroud)
如您所见,末尾有一个破折号,并且该行将始终在该破折号之后换行。我如何告诉表数据标签不要在此处换行,而是将其放入一行。我试过自动换行:正常但也会发生同样的情况。
我应该补充一点,我使用 Bootstrap 作为 CSS 框架,表定义如下所示:
<table class="table table-condensed table-hover table-striped">
Run Code Online (Sandbox Code Playgroud)