我有一个ContentDialog有ListView.这个ListView'sDataTemplate包含一个,Grid而且它Grid有一个Button.代码如下:
<ContentDialog x:Name="DownloadListDialog" x:FieldModifier="public" Grid.Column="1">
<ListView Name="AssetsListView" IsItemClickEnabled="False" Grid.Row="1" SelectionMode="Single" MaxHeight="500" ItemsSource="{x:Bind _viewModel.Assets, Mode=OneWay}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
...
...
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate x:DataType="viewModel:AssetViewModel">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel>
<TextBlock Text="{x:Bind name}"/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind lblFileSize}"/>
<TextBlock Text="{x:Bind contentSize, Mode=OneWay}"/>
<TextBlock Text="{x:Bind contentUrl}" Visibility="Collapsed"/>
</StackPanel>
</StackPanel>
<Button Content="Download" Click="Button_Click" HorizontalAlignment="Right" Grid.Column="1"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentDialog>
Run Code Online (Sandbox Code Playgroud)
这是我的Button Click事件处理程序:
private async void Button_Click(object sender, RoutedEventArgs …Run Code Online (Sandbox Code Playgroud) 要求:应用程序必须容器化为 docker 镜像,并且需要支持arm64和amd64架构。
代码库:它是一个 golang 应用程序,需要使用git2go库,并且必须CGO_ENABLED=1构建项目。最小的可重现示例可以在 github 上找到。
主机:我使用 arm64 M1 mac 和 docker 桌面来构建应用程序,但结果在我们的 amd64 Jenkins CI 构建系统上类似。
Dockerfile:
FROM golang:1.17.6-alpine3.15 as builder
WORKDIR /workspace
COPY go.mod go.mod
COPY go.sum go.sum
RUN apk add --no-cache libgit2 libgit2-dev git gcc g++ pkgconfig
RUN go mod download
COPY main.go main.go
ARG TARGETARCH TARGETOS
RUN CGO_ENABLED=1 GO111MODULE=on GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -tags static,system_libgit2 -a -o gitoperations main.go
FROM …Run Code Online (Sandbox Code Playgroud) 我是.NET的新手,试图获取所有注册用户的列表及其角色名称,并使用viewModel将它们发送到视图.
这是ViewModel:
public class ApplicationUserListViewModel
{
[Display(Name = "User Email Address")]
public string UserEmail { get; set; }
public List<IdentityUserRole<string>> Roles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我尝试了这个以获取所有用户及其角色,并为每个用户创建一个ViewModel,并将所有视图模型放在一个列表中以传递给View:
var users = _userManager.Users.ToList();
var userList = users.Select(u =>
new ApplicationUserListViewModel {
UserEmail = u.Email,
Roles = u.Roles.ToList() }
).ToList();
Run Code Online (Sandbox Code Playgroud)
但是,当我明确地为每个用户分配角色时,这总是为每个用户提供0个角色.
我是 webpack 的新手,我有一个使用vue cli. 在使用 分析 webpack 包(在生产模式下使用 构建vue-cli-service build)时webpack-bundle-analyzer,我发现一个特定文件bn.js被多次包含在包中。运行时npm ls bn.js我发现它的父依赖是webpack它本身。
`-- webpack@4.44.1
`-- node-libs-browser@2.2.1
`-- crypto-browserify@3.12.0
+-- browserify-sign@4.2.1
| +-- bn.js@5.1.3
| +-- browserify-rsa@4.0.1
| | `-- bn.js@4.11.9
| +-- elliptic@6.5.3
| | `-- bn.js@4.11.9
| `-- parse-asn1@5.1.6
| `-- asn1.js@5.4.1
| `-- bn.js@4.11.9
+-- create-ecdh@4.0.4
| `-- bn.js@4.11.9
+-- diffie-hellman@5.0.3
| +-- bn.js@4.11.9
| `-- miller-rabin@4.0.1
| `-- bn.js@4.11.9
`-- public-encrypt@4.0.3
`-- bn.js@4.11.9
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,当 webpack …
我希望能够使用测试资源管理器或代码镜头在 VS Code 中运行和调试单元测试。
但为了运行我的测试,我需要添加这个标志:
-ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
Run Code Online (Sandbox Code Playgroud)
因此,在我的 vscode settings.json 文件中,我添加了以下 json:
"go.testFlags": [
"-ldflags",
"\"-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn\""
]
Run Code Online (Sandbox Code Playgroud)
现在,当我单击测试资源管理器或代码镜头中的“运行测试”按钮时,VS Code 会生成以下命令:
/opt/homebrew/bin/go test -timeout 30s -run ^TestCreateNamespace$ github.com/SomePath/SomeRepo/internal/models/v2 -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
Run Code Online (Sandbox Code Playgroud)
但测试用例失败并出现以下错误:
panic: proto: extension number 1042 is already registered on message google.protobuf.FileOptions
See https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict
Run Code Online (Sandbox Code Playgroud)
-ldflags如果我不在go test 命令中提供,这正是我所期望的错误。但令人惊讶的是,当我复制上面提到的完全相同的 vs code 生成的测试命令并在终端中运行该命令时,测试用例就会通过。
除了从 Vs Code 运行测试之外,我还希望能够通过设置断点和单步执行代码来调试它们。
开发环境:如果重要的话,我使用的是arm64苹果M1 Mac。
更新:在摆弄这些go.testFlags值之后,我发现:
run test功能:"go.testFlags": [
"-ldflags",
"-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn"
]
Run Code Online (Sandbox Code Playgroud)
debug …我有一个页面,其中只有一个支点。该页面始终被缓存。现在,每当我导航到此页面时,我都希望从缓存中加载其内容和选择,但我希望PivotItem查看第一个。XAML:
<Pivot x:Name="FilterPivot"
IsHeaderItemsCarouselEnabled="True"
SelectedIndex="0">
<PivotItem Header="Author" >
<ListBox ItemsSource="{x:Bind AuthorFacets, Mode=OneWay}"
Name="AuthorListBox"
SelectionMode="Multiple"
SelectionChanged="AuthorListBox_SelectionChanged">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate x:DataType="local:IFacet">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Text="{x:Bind read}"
TextWrapping="Wrap"
HorizontalAlignment="Left"
VerticalAlignment="Center"/>
<Border Grid.Column="1"
Background="Gray"
MinWidth="25"
CornerRadius="8">
<TextBlock Text="{x:Bind num}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Padding="2"/>
</Border>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</PivotItem>
<PivotItem Header="Language">
....
....
</PivotItem>
<PivotItem Header="Learning Resource Type">
....
....
</PivotItem>
<PivotItem Header="Subject">
....
....
</PivotItem>
<PivotItem …Run Code Online (Sandbox Code Playgroud) 我最近了解了延迟加载组件并开始使用它。现在我正在尝试预取延迟加载的组件以及vue-router路由。但是使用 chrome devtools 我发现只有当我们实际导航到延迟加载的路由(在 vue-router 路由的情况下)或当v-if评估为true并呈现组件时(在延迟加载的情况下)才加载延迟加载的块成分)。
我还尝试webpackPrefetch: true在路由器中使用魔术字符串以及组件导入语句,但这样做似乎没有任何区别。
项目结构:
主从布局
路由器配置:
import Vue from "vue";
import Router from "vue-router";
Vue.use(Router);
var routes = [
{
path: "/DetailPage",
component: () => import(/* webpackChunkName: "Detail-chunk" */ "AppModules/views/MyModuleName/DetailPage.vue")
},
{
path: "/MasterPage",
component: () => import("AppModules/views/MyModuleName/MasterPage.vue")
}
]
export const router = new Router({
routes: routes,
stringifyQuery(query) {
// encrypt query string here
}
});
export default router;
Run Code Online (Sandbox Code Playgroud)
主视图:
<template>
<div @click="navigate">
Some text
</div> …Run Code Online (Sandbox Code Playgroud) 我正在实现一个功能,可以在网页上添加、拖动和删除“便笺”。该应用程序是用 Vue js 构建的,但它也在 iframe 中渲染内容。添加到页面的所有注释都必须位于 iframe 的顶部(几乎占主 .vue 页面的 80%),因此在这里定位很重要,我还必须保留位置,因为我必须渲染注释在下一页重新加载时的同一位置。问题是拖动“note”元素有很多滞后。“便利贴”本身是一个重量非常轻的独立组件。
我注意到这是因为 vue 页面上存在 iframe,因为当我检查浏览器中的 DOM 并删除 iframe,然后尝试拖动“note”组件时,它会顺利工作。
我尝试过的事情:
loadsh.throttle,但这没有任何区别。document主页的 来附加拖动事件,而是将所有事件附加到iframe.contentDocument.
所以这里的问题是如何在使用 vue.js沙箱链接时使拖动平滑: https://codesandbox.io/s/affectionate-jang-3c1hw ?file=/src/components/HelloWorld.vue
在这个 gif 中,背景实际上是 iframe,我降低了它的不透明度以隐藏它。
由于跨源问题,我实际上无法将 iframe 包含在沙箱代码中,但我在该沙箱中包含了很多额外的内容以使其变得沉重。
更新:使用 chrome 任务管理器,我发现该页面仅占用最大 200MB 内存,而 GPU 进程又占用 200MB。我在 16GB RAM 的系统上运行它。所以我不认为这是内存问题。但是当我开始拖动元素时,CPU 消耗突然激增(高达 40%)。
更新:
我已经找到了这个问题的解决方法。实际的问题不是滞后,而是鼠标拖尾,即可拖动元素无法跟上快速移动的鼠标光标。而慢是因为里面的方法e.preventDefault造成的。只需删除即可解决所有问题。此外,仅在方法末尾添加 a似乎会导致相同的滞后量。dragMouseDownNote.vuee.preventDefaultreturn falsedragMouseDown
function dragMouseDown(e) {
e = e …Run Code Online (Sandbox Code Playgroud) 我的AutoSuggestBox可见性设置为Collapsed。在同一视图页面中,我有一个按钮。单击按钮时,我想显示AutoSuggestBox. 当查询已提交或AutoSuggestBox失去焦点时,我想再次隐藏它。
这是 AutoSuggestBox 和按钮:
<AutoSuggestBox Name="MainAutoSuggestBox"
Grid.Row="2"
GotFocus="MainAutoSuggestBox_GotFocus"
Visibility="Collapsed"
QueryIcon="Find"
QuerySubmitted="MainAutoSuggestBox_QuerySubmitted"
LostFocus="MainAutoSuggestBox_LostFocus"/>
<Button Name="TopBarSearchButton"
Content="Button"
Click="TopBarSearchButton_Click"/>
Run Code Online (Sandbox Code Playgroud)
我的代码隐藏:
class SomePage : page
{
...
...
private void MainAutoSuggestBox_GotFocus(object sender, RoutedEventArgs e)
{
//only for testing purposes
}
private void MainAutoSuggestBox_LostFocus(object sender, RoutedEventArgs e)
{
MainAutoSuggestBox.Visibility = Visibility.Collapsed;
//put focus on the page
this.Focus(FocusState.Programmatic);
}
private void MainAutoSuggestBox_QuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
{
//Do something
//Works fine
}
private void TopBarSearchButton_Click(object sender, RoutedEventArgs e) …Run Code Online (Sandbox Code Playgroud) 我有一个简单的问题。由于我一次只能COntentDialog打开一个,并且在关闭事件中ContentDialog我有一个条件,可以ContentDialog通过执行args.Cancel = true. 所以这样做ContentDialog.Hide()有时不能关闭ContentDialog,当再次打开对话框时会导致异常。因此,在任何对话框之前,我希望能够检查其他对话框是否已关闭。我怎样才能做到这一点 ?
我正在使用此函数来加密我的UWP项目中的数据:
public string Encrypt(string text, string key)
{
byte[] buffer = Encoding.UTF8.GetBytes(text);
byte[] sessionKey = Encoding.UTF8.GetBytes(key);
Aes myAes = Aes.Create();
myAes.Mode = CipherMode.ECB;
myAes.KeySize = 128;
myAes.Key = sessionKey;
myAes.Padding = PaddingMode.PKCS7;
ICryptoTransform encryptor = myAes.CreateEncryptor();
buffer = encryptor.TransformFinalBlock(buffer, 0, buffer.Length);
return Convert.ToBase64String (buffer);
}
Run Code Online (Sandbox Code Playgroud)
但是在解密从Encrypt()返回的数据时,我得到了不同的结果(不等于Encrypt()的文本参数).我使用以下代码:
public string Decrypt(string text, string key)
{
byte[] buffer = Convert.FromBase64String(text);
byte[] sessionKey = Encoding.UTF8.GetBytes(key);
Aes myAes = Aes.Create();
myAes.Mode = CipherMode.ECB;
myAes.KeySize = 128;
myAes.Key = sessionKey;
myAes.Padding = PaddingMode.PKCS7;
ICryptoTransform decryptor = …Run Code Online (Sandbox Code Playgroud) 我正在制作一个UWP,我已经有了一个ListView观点.当我单击a时ListViewItem,我调用API,然后导航到另一个页面,传递被调用API的响应.我想要做的是,在调用API时,我想显示进度环(直到导航发生)
这是我现在的XAML:
<Grid>
<ProgressRing Name="MyProgressRing" Grid.Row="0" Height="100" Width="100" Foreground="Red" IsActive="True" Visibility="Visible" />
<ListView Name="SearchResultListView"
SelectionMode="Single"
IsItemClickEnabled="True"
ItemClick="SearchResultListView_ItemClick">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate x:DataType="ViewModel:SearchResultViewModel">
<Grid Style="{StaticResource SearchResultListViewStyle}">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<TextBlock Text="{x:Bind Name}"
Grid.Row="0"/>
</StackPanel>
<TextBlock Text="{x:Bind Source}"
Grid.Row="1"/>
<TextBlock Text="{x:Bind Author}"
Grid.Row="2"/>
<TextBlock Text="{x:Bind EducationalLevel}"
Grid.Row="3"/>
<StackPanel Orientation="Horizontal"
Grid.Row="4">
<Border Background="Gray"
Padding="3"
CornerRadius="1">
<TextBlock Text="{x:Bind Language}"
FontSize="12"
Margin="0, 0, 0, 2"/>
</Border>
</StackPanel>
</Grid> …Run Code Online (Sandbox Code Playgroud) c# ×6
uwp ×5
xaml ×5
javascript ×3
vue.js ×3
go ×2
webpack ×2
aes ×1
asp.net-mvc ×1
buildx ×1
cgo ×1
cryptography ×1
delve ×1
docker ×1
draggable ×1
encryption ×1
gcc ×1
gopls ×1
iframe ×1
npm ×1